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"}}?如果不难说出你想要做什么。

需求功能是将控制器单例连接在一起,但控制助手在新控制器/视图对的上下文中呈现模板。您不能使用需求来访问这些控制器,因为需求无法知道您指的是哪个实例。

听起来您想在一个真正的childController单例的上下文中呈现“子”模板。在这种情况下,使用渲染助手:{{render "child"}}

于 2013-03-11T05:21:52.683 回答