2015-12-23 69 views
2

我試圖從一個子模板在emberjs的以前的版本,這可能有使用需求的關鍵字來完成它的父數據 訪問:EmberJs

app.RepositoriesController = Ember.Controller.extend({ 
    needs: "user", 
    user : Ember.computed.alias("controllers.user"); 
}); 

從我與新版本的餘燼這應該像下面這樣做(如需要的關鍵字被廢棄)理解:

app.RepositoriesController = Ember.Controller.extend({ 
    user: Ember.inject.controller('user') 
}); 

,但它似乎並不在我的HTML代碼工作,我使用下面的行是空白:

{{user.name}} 

謝謝!

回答

0

我不知道,這是最好的做法,但它做的工作: 我加入到路由一個新功能:

setupController: function (controller, model) { 
    var user = this.modelFor('user'); 
    controller.set('user', user); 
    Ember.$.getJSON(user.repos_url).then(function(res){ 
     controller.set('model', res); 
    }); 

} 
0

通常取數據應該去模型鉤所以你上面的代碼可能可以寫成:

model: function(){ 
var user = this.modelFor('user'); 
return Ember.$.getJSON(user.repos_url).then(function(res){ 
    return { user: user, res: res} 
}); 
} 

在控制器現在可以訪問模型像

user: Ember.computed.alias('model.user'), 
res: Ember.computed.alias('model.res')