Я пытаюсь разобраться с Ember и прохожу учебник todos. Я застрял на этапе отображения данных модели здесь https://emberjs.com/guides/getting-started/displaying-model-data/
вот javascript, который я скопировал и вставил из учебника:
window.Todos = Ember.Application.create();
Todos.Router.map(function () {
this.resource('todos', { path: '/' });
});
Todos.TodosRoute = Ember.Route.extend({
model: function () {
return Todos.Todo.find();
}
});
Todos.Store = DS.Store.extend({
revision: 12,
adapter: 'DS.FixtureAdapter'
});
Todos.Todo = DS.Model.extend({
title: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
Todos.Todo.FIXTURES = [
{
id: 1,
title: 'Learn Ember.js',
isCompleted: true
},
{
id: 2,
title: '...',
isCompleted: false
},
{
id: 3,
title: 'Profit!',
isCompleted: false
}
];
Тогда вот мой шаблон руля:
...
{{#each controller}}
<li>
<input type="checkbox" class="toggle">
<label>{{title}}</label><button class="destroy"></button>
</li>
{{/each}}
И все же я получаю эту ошибку
Uncaught Error: assertion failed: an Ember.CollectionView's content must implement Ember.Array. You passed <(generated todos controller):ember257>
Мне кажется, что любой объект контроллера по умолчанию, который генерирует Ember, должен иметь тип Ember.Array, но по какой-то причине этого не происходит. Мне интересно, если это проблема с ember-данными?
Я использую все файлы из стартового набора: ember 1.0.0 rc5 handlebars 1.0.0 rc4 jquery 1.9.1 и ember-data, единственное указание на версию, которое я могу сказать, это комментарий.
// Last commit: 3981a7c (2013-05-28 05:00:14 -0700)
Есть ли проблема зависимости, о которой кто-то знает, или я сделал что-то не так?
Controller
вместоArrayController
, настройкаTodo.TodosController = Em.ArrayController.extend({});
явно устраняет проблему. 26.07.2013