Ember夹具不工作 [英] Ember fixtures not working
问题描述
这是我的代码(使用ember-cli):
This is my code (using ember-cli):
app.coffee
app.coffee
`import Ember from 'ember'`
`import Resolver from 'ember/resolver'`
`import loadInitializers from 'ember/load-initializers'`
Ember.MODEL_FACTORY_INJECTIONS = true
App = Ember.Application.extend
modulePrefix: 'dashboard' # TODO: loaded via config
Resolver: Resolver
loadInitializers App, 'dashboard'
`export default App`
$ b b
adapters / application.coffee
adapters/application.coffee
`import DS from 'ember-data'`
ApplicationAdapter = DS.FixtureAdapter.extend()
`export default ApplicationAdapter`
models / mod.coffee
models/mod.coffee
`import DS from 'ember-data'`
Mod = DS.Model.extend
name: DS.attr 'string'
body: DS.attr 'string'
summary: DS.attr 'string'
category: DS.attr 'string'
Mod.reopenClass {
FIXTURES: [
{
id: 1
name: "First mod"
body: "..."
summary: "..."
category: "api"
},
{
id: 2
name: "Second mod"
body: "..."
summary: "..."
category: "api"
}
]
}
`export default Mod`
但是在应用程序中,我运行 ember服务
,也不在浏览器中输出(输出:
But in the app nothing is thrown when I run ember serve
nor in the browser conole (output:
DEBUG: ------------------------------- vendor.js:27630
DEBUG: Ember : 1.7.0 vendor.js:27630
DEBUG: Ember Data : 1.0.0-beta.8.2a68c63a vendor.js:27630
DEBUG: Handlebars : 1.3.0 vendor.js:27630
DEBUG: jQuery : 1.11.1 vendor.js:27630
DEBUG: ------------------------------- vendor.js:27630
generated -> route:application Object {fullName: "route:application"} vendor.js:27630
generated -> route:index Object {fullName: "route:index"} vendor.js:27630
generated -> controller:application Object {fullName: "controller:application"} vendor.js:27630
Rendering application with default view <dashboard@view:toplevel::ember323> Object {fullName: "view:application"} vendor.js:27630
generated -> controller:index Object {fullName: "controller:index"} vendor.js:27630
Rendering index with <dashboard@view:index::ember339> Object {fullName: "view:index"} vendor.js:27630
Ember Debugger Active
)
在ember检查器中它显示我的mod模型,但没有记录
In ember inspector it shows me my mod model but with no record
这是整个github库 https://github.com/OpenCubes/dashboard/ tree / temp
Here is the whole github repo https://github.com/OpenCubes/dashboard/tree/temp
推荐答案
确定2件事。
首先你必须生成一个路由,如果你正在获取整个集合。默认情况下,我们主动生成的路由不会这样做。我相信它只是与歧义,我们不想意外获取你的整个数据源,所以我们留给用户todo。
first you must generate a route if you are fetching the whole collection. Our actively generated routes don't do this by default. I believe it just has to do with ambiguity and that we don't want to fetch your entire datasource by accident, so we leave this up to the user todo.
// app/routes/mods.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() { return this.store.find('mod'); }
});
秒你必须在提供fixture时使用reopenClass。这是因为IE6 +没有办法正确地将静态/类变量传播给后代。所以ember实现自己的机制。在某个未来的时间点 setPrototypeOf
将可用,我们可以推迟。
second you must use reopenClass when providing fixtures. This is because IE6 + there is not way to properly propagate static/class variables to descendants. So ember implements its own mechanism. At some future point in time setPrototypeOf
will be usable and we can defer to that. Until then for ember-cli apps, please use embers sanctioned way.
import DS from 'ember-data';
var Mod = DS.Model.extend({...})
Mod.reopenClass({
FIXTURES: [
...
]
});
export default Mod;
那么它工作
这篇关于Ember夹具不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!