Ember.js:我怎样才能将我的视图与控制器分离?

时间:2012-03-04 02:26:23

标签: model-view-controller ember.js

我正在尝试重新构建ember.js应用程序的紧密耦合部分,特别是控制器的视图和模板。

我见过的所有示例都直接将视图绑定到视图的类定义中的控制器,或者将(全局)控制器路径传递给模板本身的视图。

TargetActionSupport mixin(我认为sproutcore中的DelegateSupport)似乎是一个很好的候选者,但仍然需要在模板本身中设置目标(控制器)和动作。

理想情况下,我想在我的控制器中实例化我的视图(不知何故),设置目标和操作,但在我的模板中设置表示变量(例如:静态类,id),但是我我不确定如何做到这一点,或者这是否是正确的方法。

1 个答案:

答案 0 :(得分:5)

您可以以编程方式实例化视图并将其插入DOM中的任何位置:

var view = Ember.View.create();
view.appendTo('#someElement');

如果要消除全局绑定路径,可以在实例化时将控制器引用传递给视图:

var controller = Ember.Object.create({content: {}}),
    view = Ember.View.create({
      controller: controller,
      contentBinding: 'controller.content'
    });

我还建议调查Ember StateManager。