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

Bil*_*iam 4 model-view-controller ember.js

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

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

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

理想情况下,我想在我的控制器(以某种方式)实例化我的视图,设置目标和操作,还在我的模板中设置表示变量(例如:静态类,id),但我不确定如何完成这个,或者这是否是正确的方法.

ebr*_*ryn 5

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

var view = Ember.View.create();
view.appendTo('#someElement');
Run Code Online (Sandbox Code Playgroud)

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

var controller = Ember.Object.create({content: {}}),
    view = Ember.View.create({
      controller: controller,
      contentBinding: 'controller.content'
    });
Run Code Online (Sandbox Code Playgroud)

我还建议调查Ember StateManager.