关于为不同路线重用控制器的思考

时间:2013-07-24 09:07:25

标签: ember.js

我有几个表现非常相似的对象。我想为与这些对象相关的控制器提供基本实现,然后extend这些控制器稍微自定义行为。我正在做这样的事情:

App.BaseIndexController = Ember.ArrayController.extend({
    ...
});

现在我将使用基本控制器来定义我的真实对象控制器:

App.AgentsIndexController = App.BaseIndexController.extend({
    ....
});

我有两个问题:

  1. 是否有任何一般性意见阻止这种重用?
  2. extend机制是否是重用通用控制器实现的正确方法,确保在扩展同一个基本控制器的控制器之间没有状态数据“泄漏”?

1 个答案:

答案 0 :(得分:1)

你可以按照你的建议去做,但请注意,App.BaseIndexController中定义的任何属性都会在它们被启动时泄漏(check this out表示常见错误)

Mixins也可以很好地工作,因为它们更可重复使用。 Ember在内部使用了Mixins,所以你不能错过这种方法。