2014-09-23 140 views

回答

4

這裏不少東西,讓我看看,如果我能把它們都記住:

當你有一個資源下的路線,這條路線的路線和控制器應該拿自己父母的名字。

App.Router.map(function() { 
    this.resource("parent", function(){ 
    this.route("child"); 
    }); 
}); 

App.ParentChildRoute... 

App.ParentChildController... 

把手無法從您的控制器訪問正常的功能,應將其轉換爲計算屬性。

App.ParentChildController = Ember.ObjectController.extend({ 
    middleNames: function(){ 
    ... 
    }.property('middles.[]') 
}); 

命名是區分大小寫的

{{#each name in middlenames}} 

應該

{{#each name in middleNames}} 

例子:http://emberjs.jsbin.com/cowibi/1/edit

+0

你從哪裏學習.property('middles。[]')?我似乎無法在這裏找到任何文檔:http://emberjs.com/guides/object-model/computed-properties/ – 2014-09-23 13:35:25

+2

哦,我設法找到答案在這裏:http://emberjs.com/ API /班/ Ember.Array.html#property__ – 2014-09-23 17:06:10

0

我創建了一個基於你的一個新的例子,把事情說清楚。您可以點擊此處查看:

http://emberjs.jsbin.com/hokabe/4/edit

爲了灰燼航線的model掛鉤,如果返回值是一個承諾,該航線將等待解決的承諾,並通過解析值到控制器的model財產。

而一個App.Parent實例的middles屬性返回一個承諾(實際上它是一個DS.PromiseArray實例),這將解決中段陣列(實際上它是一個DS.ManyArray實例)。

所以讓孩子們可以簡單地這樣做:

App.ParentMiddlesRoute = Ember.Route.extend({ 
    model: function() { 
    return this.modelFor('parent').get('middles'); 
    } 
}); 

注意modelFor參數是一個路徑名稱,但不是一個型號名稱。它意味着「從給定路線獲取模型」。