[英]Looping over an Ember.js promise
我試圖循環我認為是Ember的承諾,但我似乎得到的只是一個對象,它應該是一個數組。
jsbin: http ://emberjs.jsbin.com/qakine/1/edit
如果我只是循環模板中的項目,那么我沒有問題,但我希望能夠與我的控制器中的數組項進行交互。 任何幫助贊賞。
這里有很多東西,讓我看看我是否能記住它們:
當您在資源下有路由時,該路由的路由和控制器應采用其父級的名稱。
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/hokabe/4/edit
對於Ember route的model
鈎子,如果返回值是promise,則路由將等待promise的解析並將解析后的值傳遞給controller的model
屬性。
和App.Parent
實例的middles
屬性返回一個承諾(實際上它是一個DS.PromiseArray
實例),這將解決中段陣列(實際上它是一個DS.ManyArray
實例)。
所以為了生孩子,你可以簡單地這樣做:
App.ParentMiddlesRoute = Ember.Route.extend({
model: function() {
return this.modelFor('parent').get('middles');
}
});
請注意, modelFor
參數是路徑名稱,但不是模型名稱。 這意味着“從給定路線獲取模型”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.