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())
是否可以在创建视图时隐式分配控制器?
答案 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'),