创建Ember View时分配/创建控制器

时间:2013-12-21 14:38:12

标签: asp.net asp.net-mvc ember.js

var view = Ember.View.extend({

 templateName: 'some',
//action: 'save',
//click: function () { this.triggerAction(); },
init: function () {
 this._super();
this.set('controller', App.SomeController.create())
 }

});
view.create().appendTo("#divMain");

这里我创建视图并附加到div,但是在这里我必须明确设置控制器this.set('controller', App.SomeController.create())

是否可以在创建视图时隐式分配控制器?

1 个答案:

答案 0 :(得分:1)

不,那是倒退的。

查看不要“拥有”控制器。控制器“管理”一个视图。父控制器大部分时间都在管理视图。考虑所有可重用的项目,输入帮助程序,链接到等,所有视图,由其父控制器支持。

当您访问路线时,Ember会将模板连接到支持该路线的视图/控制器。通常这些是默认实现,并且您没有指定任何不同的内容。

这是Ember View上的控制器属性。

  /**
    The controller managing this view. If this property is set, it will be
    made available for use by the template.

    @property controller
    @type Object
  */
  controller: Ember.computed(function(key) {
    var parentView = get(this, '_parentView');
    return parentView ? get(parentView, 'controller') : null;
  }).property('_parentView'),