У меня проблема с индексированием массива. Глядя вокруг, я нашел несколько примеров того, как к элементам индекса в контроллере через представление http://jsfiddle.net/WSwna/14/Ember.js, как создать массив, который я могу индексировать
Моего приложение получает данные из REST вызова следующего
Videos.Store = DS.Store.extend({
revision: 12,
url: "http://localhost/",
adapter: Videos.Adapter
})
Моего маршрутизатора следующего
Videos.Router.map(function(){
this.resource('videos', {path: '/'});
this.route('forms');
})
Videos.VideosRoute = Ember.Route.extend({
model: function(){
return Videos.Video.find();
}
});
И когда я реализовать HTML как
{{#each controller}}
.....
{{/each}}
Отображаются мои данные.
Однако я хочу, чтобы реализовать пример из ссылки http://jsfiddle.net/WSwna/14/ Но у меня есть проблемы с генерируя Videos.VideosController и мимоходом, что в {{#each итератора}}
Мой Videos.VideosController выглядит следующим образом
Videos.VideosController = Ember.ArrayController.extend({
model: function(){
return Videos.Video.find();
}
});
Videos.VideoView = Ember.View.extend({
content: null,
adjustedIndex: function(){
return this.getPath('_parentView.contentIndex') + 1;
}.property()
});
Но когда я использую это в HTML следующим образом:
{{#each Videos.VideosController }}
Я получаю сообщение об ошибке говоря, что контент должен внедрять Ember.Array. Вы передали видео. VideosController. Насколько я понимаю, Ember предоставил массив массивов по умолчанию, который нужно повторить, но теперь, когда я хочу расширить этот контроллер, мне трудно создать массив данных для передачи в представление. Я также не понимаю, как код View подключается к этому расширенному контроллеру.
Любые идеи, которые могут помочь прояснить это, будут очень признательны.
Это большая помощь. Но я все еще застрял. Одна из вещей, с которыми я действительно борюсь, заключается в том, что когда маршрут создает массив из модели, как я могу его использовать? Итак, в приведенном выше примере вы имеете hardcoded контент: [{name: 'Goodfellas'}, {name: 'foobar'}], но я хочу иметь возможность делать что-то вроде Video.Video.find(). –
@ LindaKeating, я отредактировал свой ответ, я думаю, теперь он отражает больше вашего прецедента, надеюсь, что это поможет. – intuitivepixel
Привет Большое спасибо. Это начинает иметь для меня немного больше смысла. Я все еще застрял. Я искал API для документации о 'afterModel' и не могу найти. Кроме того, код работает для меня без ошибок, но я не думаю, что массив в videoController заполняется данными. Когда я отлаживаю его где-то вдоль строки, я получаю сообщение об ошибке «Ожидаемый хеш» или «Миксин», получил [object Object] ember. Может, придется сдаться! но еще раз спасибо –