1
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、します。問題は、さらにいくつかのバインディングを設定しようとすると、実際のバインディングの前に多数の冗長な null が表示されることです。

それを回避し、もう少し DRY にする既知の方法はありますか?


編集#1

承認された解決策により、私は一石二鳥でした。以前はこれが不可能だったことが判明しました-私はいつもエラーを受け取りました:

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

Chrome がクラッシュするため、この例を実行できない場合があることに注意してください。

しかし、新しいアプローチは努力なしでそれを可能にしました! http://jsfiddle.net/gqSMU/11/

4

1 に答える 1