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
批准的解决方案帮助我用一块石头杀死了两只鸟。事实证明,以前这是不可能的- 我一直收到错误:
Error while loading route: RangeError
Uncaught RangeError: Maximum call stack size exceeded
请注意,可能无法运行此示例,因为它会使 Chrome 崩溃。
但新方法使之成为可能毫不费力!http://jsfiddle.net/gqSMU/11/