2013-09-21 3 views
0

Работал до того, как начал переименование нескольких вещей, в частности самого ArrayController.
Вот мой код:Почему мой элемент управления Ember.ArrayController не определен?

// list_missions.js 
Create.ListMissionsController = Ember.ArrayController.extend({ 
    itemController: 'listMissionsItem', 
}); 

// list_mission.js 
Create.ListMissionsItemController = Ember.ObjectController.extend({ 
    needs: ['listMissions'], 
}); 
{{#each mission in controllers.listMissions 
    itemViewClass="Create.ListMissionsItemView"}} 
    <div>{{mission.name}}</div> 
{{/each}} 

Возможно, это из-за того, как я заходящего содержание с фильтром?
Как это в маршруте:

var missions = Breadcrumb.Mission.query({ 
     list: model.get('id'), range_size: 150}); 
    var missionsFilter = Breadcrumb.Mission.filter(
     function(m) { return m.get('list') === model; }); 
    this.controllerFor('listMissions').set('content', missionsFilter); 

должны работать правильно? Но при осмотре listMissions._subControllers все неопределенными :(
Что может вызвать itemController не правильно зарегистрировать

+0

Любой шанс, который вы можете поставить JSBin? Кажется, вы пытаетесь сделать что-то не в «The Ember Way (TM)» И я не совсем уверен, что вы делаете. –

+0

@Jeremy - это часть гораздо большей базы кода. В основном я просто пытаюсь работать со списком миссий с помощью ArrayController. Я переустановил мой последний коммит, и он снова работает. Где-то в моей попытке переименовать ArrayController я что-то испортил, потому что столько других использует его. Я снова пытаюсь переименовать ... –

+0

@Jeremy - Вы частично правы в том, что не делаете что-то в Ember way. Наш маршрут приложения для listMission - это фактически подробный вид миссии. Одновременно пользователь может также видеть и работать со списками миссий в другой панели с собственными контроллерами и представлениями. Это противоречит ember-мантре о том, что url является источником истины для состояния приложения, но мы изучаем новые параметры запроса url, чтобы отменить состояние других панелей. –

ответ

0

Это потому, что у меня есть маршрут с таким же названием:

Create.ListMissionsRoute = Breadcrumb.Route.extend({ ... 

который предназначен для другое представление, которое не имеет явного контроллера, потому что это промежуточный маршрут, который никогда не посещается сам по себе. Поэтому я не поймал его во время поиска и замены. Дух, простая ошибка.

Смежные вопросы