控制器之间的绑定 - 如何避免冗余空值?

时间:2013-08-30 19:54:02

标签: ember.js

App.MainController = Em.ObjectController.extend({
    needs: ['my']
});

App.MyController = Em.ObjectController.extend({
    needs: ['main'],
    mainControllerBinding: 'controllers.main'
});

这当然不能按预期工作。但是这个:

App.MyController = Em.ObjectController.extend({
    needs: ['main'],
    mainController: null,
    mainControllerBinding: 'controllers.main'
});

即设置null,确实如此。问题是当你尝试设置更多绑定时,你看到的是真正绑定之前的一堆冗余空值。

有没有一种已知的方法可以避免它并且更干一些?


修改#1

批准的解决方案帮助我一石二鸟。事实证明,之前this wasn't possible - 我一直都有错误:

Error while loading route: RangeError
Uncaught RangeError: Maximum call stack size exceeded 

请注意,可能无法运行此示例,因为它会导致Chrome崩溃。

但是这种新方法可以毫不费力地实现! http://jsfiddle.net/gqSMU/11/

1 个答案:

答案 0 :(得分:3)

试试这个:

App.MyController = Em.ObjectController.extend({
  needs: ['main'],
  mainController: Em.computed.alias('controllers.main')
});