使用 Mixin 将控制器添加到需求中

Add Controller to needs with Mixin

我正在尝试为使用很多相同功能的控制器创建一个 mixin,但我需要确保所有控制器也都可以访问一些基本控制器。我目前通过添加到 needs 来做到这一点。

// 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 的方法?

needs合并。也就是所谓的"concatenated property".

你做了什么样的测试表明它被覆盖了?这将严重限制您编写控制器混入和超类的能力,而且它不是这样工作的。

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