0

親コントローラーから子コントローラーをターゲットにするのに問題があります。

これを持っている:

<script type="text/x-handlebars" data-template-name="parent">
    <h1>Parent controller</h1>
    {{control "child"}}
</script>

<script type="text/x-handlebars" data-template-name="child">
    <h2>Child controller</h2>
    {{controller}}
</script>

App.ParentController = Ember.Controller.extend({
    needs: ["child"],
    applyActionOnChild:function(){
        this.get('controllers.child').someAction();
    }
});
App.ParentView = Ember.View.extend({});

App.ChildController = Ember.Controller.extend({
    someAction:function(){
        //Called but not the right instance
    };
});
App.ChildView = Ember.View.extend({});

子コントローラーが親コントローラーを呼び出すと、ember のニーズ機能が機能するように見えますが、その逆の場合は機能しません...

someAction メソッドにブレークポイントを配置すると、子ビューに表示されているものとは異なるオブジェクト参照があることがわかります...

誰でもこれがどのように機能するか知っていますか?

前もって感謝します

4

1 に答える 1

1

あなたが指定{{controller "child"}}した例では、ということ{{control "child"}}ですか?あなたがやろうとしていることを伝えるのが難しくなければ。

必要な機能は、コントローラーのシングルトンを一緒に配線するためのものですが、コントロール ヘルパーは、新しいコントローラー/ビューのペアのコンテキストでテンプレートをレンダリングします。needs を使用してこれらのコントローラーにアクセスすることはできません。これは、needs が意図したインスタンスを知る方法がないためです。

childController代わりに、真のシングルトンのコンテキストで「子」テンプレートをレンダリングしたいようです。その場合は、レンダー ヘルパーを使用します。{{render "child"}}

于 2013-03-11T05:21:52.683 に答える