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
,确实如此。问题是当你尝试设置更多绑定时,你看到的是真正绑定之前的一堆冗余空值。
有没有一种已知的方法可以避免它并且更干一些?
批准的解决方案帮助我一石二鸟。事实证明,之前this wasn't possible - 我一直都有错误:
Error while loading route: RangeError
Uncaught RangeError: Maximum call stack size exceeded
请注意,可能无法运行此示例,因为它会导致Chrome崩溃。
但是这种新方法可以毫不费力地实现! http://jsfiddle.net/gqSMU/11/
答案 0 :(得分:3)
试试这个:
App.MyController = Em.ObjectController.extend({
needs: ['main'],
mainController: Em.computed.alias('controllers.main')
});