如何在Ember.ContainerView中为视图创建控制器?

时间:2013-09-16 19:39:48

标签: javascript ember.js

对于Ember.js中的任何视图,我们需要创建具有适当名称的控制器才能使用此控制器,但ContainerView中的视图不是这种情况。

查看(在ContainerView内):

App.ChildView = Ember.View.extend({});

控制器:

App.ChildController = Ember.ObjectController.extend({
    init: function () {
        alert('Hell no! I\'m not going to init!');
        return this._super();
    }
});

以上不起作用......

this.set('controller', App.ChildController.create())(内部视图)之类的解决方案不是一个选项,因为Ember.Eventedneeds可能还有更多内容不起作用。

以下是(非)工作示例:http://jsfiddle.net/wbednarski/XaPSR/

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

  

对于Ember.js中的任何视图,我们需要创建具有适当名称的控制器才能使用此控制器

我不确定这个前提是否正确。 ContainerView是一个非常低级的视图库,它对控制器一无所知。它可能用于创建小的窗口小部件或组件,在这种情况下,子视图将没有自己的控制器。如果您希望将ContainerView中的视图绑定到它们自己的控制器,这表明ContainerView不适合您正在尝试解决的问题。

相反,请考虑使用{{render}}{{each}}等手柄帮助器。