2015-04-02 23 views
0

我目前正在使用的應用程序使用Ember.ArrayController加載一對place模型。爲了獲得不同的行爲不同的模型類型我用了lookupItemController這樣的:如何用Ember.Controller替換Ember.ObjectController

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

你會完全像以前一樣使用它們。唯一的區別是您將無法代理模型的屬性。

所以,如果你曾經有過{{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'), 
    //... 
});