Ember-cli夹具装载 [英] Ember-cli Fixture loading
问题描述
app / models / todos.js
从ember-data导入DS;
var Todo = DS.Model.extend({
title:DS.attr('string'),
isCompleted:DS.attr('boolean')
});
Todo.reopenClass({
FIXTURES:[
{
id:1,
title:'install ember-cli',
isCompleted:true
},{
id:2,
title:'install additional dependencies',
isCompleted:true
},{
id:3,
title:'develop amazing things',
isCompleted:false
}
]});
导出默认Todo;
app / adapters / application.js
从ember-data导入DS;
导出默认DS.FixtureAdpater.extend();
app / routes / todos.js
从ember导入Ember;
导出默认值Ember.Route.extend({
model:function(){
return this.store.all('todo');
}
});
app / router.js
从ember导入Ember;
var Router = Ember.Router.extend({
location:TodosENV.locationType
});
Router.map(function(){
this.resource('todos',{path:'/'});
});
导出默认路由器;
Brocfile.js
var EmberApp = require('ember-cli / lib / broccoli / ember-app');
var app = new EmberApp();
app.import({
development:'vendor / ember-data / ember-data.js',
production:'vendor / ember-data / ember-data。 prod.js'
},{
'ember-data':[
'default'
]
});
module.exports = app.toTree();
我已经能够通过路线将夹具数据推送到视图中,
this.store.push(todo:{some junk});
但无法弄清我在模型文件中的错误。
任何帮助将不胜感激,谢谢。
这只是一个猜测,但是我想知道你是否需要将 this.store.all('todo');
更改为 this.store.find('todo') ;
。我确定 all()
只会返回从商店已经加载的记录。
I'm certain its something small and stupid I'm missing but can't seem to get my fixtures to load. Here is I've got...
app/models/todos.js
import DS from 'ember-data';
var Todo = DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
Todo.reopenClass({
FIXTURES: [
{
id: "1",
title: 'install ember-cli',
isCompleted: true
}, {
id: "2",
title: 'install additional dependencies',
isCompleted: true
}, {
id: "3",
title: 'develop amazing things',
isCompleted: false
}
]});
export default Todo;
app/adapters/application.js
import DS from 'ember-data';
export default DS.FixtureAdpater.extend();
app/routes/todos.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.all('todo');
}
});
app/router.js
import Ember from 'ember';
var Router = Ember.Router.extend({
location: TodosENV.locationType
});
Router.map(function() {
this.resource('todos', { path: '/' });
});
export default Router;
Brocfile.js
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
app.import({
development: 'vendor/ember-data/ember-data.js',
production: 'vendor/ember-data/ember-data.prod.js'
}, {
'ember-data': [
'default'
]
});
module.exports = app.toTree();
I've been able to push fixture data into the views via the routes with,
this.store.push(todo: {some junk});
but can't figure out what I'm doing wrong in model files.
Any help would be greatly appreciated, Thanks.
This just a guess, but I'm wondering if you need to change this.store.all('todo');
to this.store.find('todo');
. I'm pretty sure all()
will only return records that are already loaded from the store.
这篇关于Ember-cli夹具装载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!