Ember.js Ember Mixins和需求属性
我有一个关于控制器需要属性如何处理mixin的一般性问题 假设我有一个驻留在应用程序控制器中的购物卡模型,因此它在应用程序中的任何地方都可用Ember.js Ember Mixins和需求属性,ember.js,Ember.js,我有一个关于控制器需要属性如何处理mixin的一般性问题 假设我有一个驻留在应用程序控制器中的购物卡模型,因此它在应用程序中的任何地方都可用 // application route export default Ember.Route.extend({ setupController: function(controller, model) { this._super(controller, model); controller.set('cart', this.store
// application route
export default Ember.Route.extend({
setupController: function(controller, model) {
this._super(controller, model);
controller.set('cart', this.store.createRecord('cart'));
}
});
现在,任何其他需要使用购物车的控制器,我想提供一个mixin:
// mixins/cart-access
export default Ember.Mixin.create({
needs: ['application'];
cart: Ember.computed.alias('controllers.application.cart')
});
// some controller
export default Ember.Controller.extend(CartAccess, {});
这一切都很好,但如果在另一个控制器中,我将“需要”属性设置为其他属性,会导致问题吗
// some other controller
export default Ember.Controller.extend(CartAccess, {
needs: ['some-other-controller'] // not inlcuding application
});
继续并做了一个实验,来自mixin的需求将与来自控制器的需求合并 例如: posts模板显示“Hi!”和application,以及其他内容
//application route
export default Ember.Route.extend({
setupController: function(controller, model) {
this._super(controller, model);
controller.set('hello', "Hi!")
}
});
//hi mixin
export default Ember.Mixin.create({
needs: ['application'],
hello: Ember.computed.alias("controllers.application.hello")
});
//people contntroller
import Hi from 'needs/mixins/hi';
export default Ember.Controller.extend(Hi,{});
//posts controller
import Hi from 'needs/mixins/hi';
export default Ember.Controller.extend(Hi, {
needs: ['something-else']
});
//posts.hbs
{{hello}}
{{needs}}