2015-03-28 2 views
0

Я пытаюсь создать mixin для своих контроллеров, которые используют много одинаковых функций, но мне нужно убедиться, что все контроллеры также имеют доступ к некоторым базовым контроллерам. Я делаю это в настоящее время, добавляя к needs.Добавить контроллер для нужд с Mixin

// mixins/item.js 

import Ember from 'ember'; 

export default Ember.Mixin.create({ 
    needs: ['application'] 
}); 


// controller/items.js 

import Ember from 'ember'; 
import ItemMixin from '../mixins/item' 

export default Ember.Controller.extend(ItemMixin,{ 
    needs: ['index'] 
}); 

Вопрос заключается в том, что многие из контроллеров имеют дополнительные контроллеры, которые входят в needs. Из того, что я тестировал, needs в контроллерах переопределяет то, что установлено в mixin.

Есть ли все равно, чтобы объединить need?

ответ

1

needsdo merge. Это то, что называется «конкатенированным имуществом».

Какое испытание вы сделали, чтобы показать, что оно было отменено? Это серьезно ограничило бы вашу способность писать контроллеры и суперклассы, и это не так, как это работает.

См. https://github.com/emberjs/ember.js/blob/v1.10.0/packages/ember-application/lib/ext/controller.js#L76.

+0

Я создал вышеупомянутый mixin и добавил его к контроллеру с индексом в потребностях, и только индекс находился в Ember Inspector. Я подозреваю, что мне нужно сделать это ControllerMixin вместо обычного mixin. – NicholasJohn16

+0

Я мог бы прокомментировать, если вы указали больше кода. –

+0

Отправленный контроллер. – NicholasJohn16

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