簡體   English   中英

循環Ember.js承諾

[英]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/cowibi/1/edit

我創建了一個基於你的新例子,以便清楚地表達出來。 你可以在這里查看:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM