Ember.js 余烬数据模型数组未正确显示 var-App=Em.Application.create(); App.store=DS.store.create({ 适配器:DS.RESTAdapter.create() }); App.Todo=DS.Model.extend({ 标题:DS.attr('string') }); App.set('Todos',DS.ModelArray.create({ 商店:App.store, 类型:App.Todo, 内容:[] })); var todo=App.store.createRecord(App.todo{ 标题:“清理” }); App.get('todo').pushObject(todo); App.MyView=Em.View.extend({ todosBinding:'App.Todos' }); {{{#view App.MyView} {{{每个待办事项} 待办事项:{{title} {{/每个}} {{/view}

Ember.js 余烬数据模型数组未正确显示 var-App=Em.Application.create(); App.store=DS.store.create({ 适配器:DS.RESTAdapter.create() }); App.Todo=DS.Model.extend({ 标题:DS.attr('string') }); App.set('Todos',DS.ModelArray.create({ 商店:App.store, 类型:App.Todo, 内容:[] })); var todo=App.store.createRecord(App.todo{ 标题:“清理” }); App.get('todo').pushObject(todo); App.MyView=Em.View.extend({ todosBinding:'App.Todos' }); {{{#view App.MyView} {{{每个待办事项} 待办事项:{{title} {{/每个}} {{/view},ember.js,Ember.js,预期产出: Todo:清理 我实际上得到的是: 待办事项: 标题属性不显示。如果检查App.Todos.content,则该对象具有正确的标题。为什么它没有显示在视图中?我对您的代码做了一些修改,使其具有更标准的体系结构: 您应该使用控制器来检索数据,而不是自己实例化模型数组,尤其是在使用RestAdapter时。。。(在这个示例中,我用fixtureAdapter替换了RestaAdapter,只是为了让它离线运行) 谢谢,但是在您的示例中,您在控制器中获取了现有项的列表。这对我也很有效。不起

预期产出:

Todo:清理

我实际上得到的是:

待办事项:


标题属性不显示。如果检查App.Todos.content,则该对象具有正确的标题。为什么它没有显示在视图中?

我对您的代码做了一些修改,使其具有更标准的体系结构: 您应该使用控制器来检索数据,而不是自己实例化模型数组,尤其是在使用RestAdapter时。。。(在这个示例中,我用fixtureAdapter替换了RestaAdapter,只是为了让它离线运行)


谢谢,但是在您的示例中,您在控制器中获取了现有项的列表。这对我也很有效。不起作用的是通过App.store.createRecord创建的项目的显示我没有深入挖掘,但我认为问题在于您自己正在实例化ModelArray。商店肯定没有正确填充,这会导致查找丢失记录…谢谢。问题似乎在于将对象推入ModelArray。当我简单地创建这样一个obejct时:
App.store.createRecord(App.Todo,{title:'Washup'}),它会自动正确显示。
var App = Em.Application.create();

App.store = DS.Store.create({
    adapter: DS.RESTAdapter.create()
});

App.Todo = DS.Model.extend({
    title: DS.attr('string')
});

App.set('Todos', DS.ModelArray.create({
    store: App.store,
    type: App.Todo,
    content: []
}));

var todo = App.store.createRecord(App.Todo, {
    title: 'Cleanup'
});
App.get('Todos').pushObject(todo);

App.MyView = Em.View.extend({
    todosBinding: 'App.Todos'
});

  <script type="text/x-handlebars">
    {{#view App.MyView}}
      {{#each todos}}
        Todo: {{title}}
      {{/each}}
    {{/view}}
  </script>
var App = Em.Application.create();

App.store = DS.Store.create({
    revision: 3,
    adapter: DS.fixtureAdapter //DS.RESTAdapter.create()
});

App.Todo = DS.Model.extend({
    title: DS.attr('string')
});

App.Todo.FIXTURES = [{
    title: 'Cleanup'
}];

App.myController = Em.ArrayController.create({
    init: function() {
        this.set('content', App.store.findAll(App.Todo));
    }
});

App.MyView = Em.View.extend({
    todosBinding: 'App.myController.content'
});