我目前正在处理的应用程序使用Ember.ArrayController
加载了几个place
模型。为了获得不同模型类型的不同行为,我使用了lookupItemController
,如下所示:
PlacesController
lookupItemController: function(object) {
if(object.get('isNew')) {
return "places.new";
} else {
return "places.index";
}
}
PlacesNewController
needs: ['places']
isDraggable: Ember.computed.alias('isCloseEnough')
isCloseEnough: false
isZoomMax: false
isMarkerAdded: false
...
PlacesIndexController
needs: 'places',
isDraggable: false,
modelBinding: 'places.model'
...
但现在不推荐使用Ember.ObjectController
。我的问题是:如何使用Ember.Controller
?
答案 0 :(得分:0)
你会像以前一样使用它们。唯一的区别是您无法代理模型的属性。
因此,如果您曾经{{a.b.c}}
通过控制器进入model.a.b.c
,那么现在您必须执行以下操作之一:
1)将模板中的属性查找路径更改为{{model.a.b.c}}
2)在你的控制器(曾经是ObjectController)中,添加如下内容:
App.MyController = Ember.Controller.extend({
a: Ember.computed.alias('model.a'),
//...
});