2015-05-08 26 views
0

我一直在摔跤的時間超過了我的承認。我正在嘗試從本地商店加載一些數據,將返回的值設置爲路由圖層的模型,然後使用該內容呈現Ember.Select。很簡單的東西對嗎?Ember.Select拋出錯誤#each幫手

這是我的路,我在哪裏加載數據:

App.IdentityRoute = Ember.Route.extend({ 
    model: function() { 
    return new Promise(function(resolve, reject) { 
     MuttrChat.models.Identity.find({}, function(err, results) { 
     if (err) { 
      return reject(err); 
     } 

     resolve({ identities: results }); 
     }); 
    }); 
    }, 
    actions: { 
    ready: function() { 
     this.transitionTo('inboxes'); 
    } 
    } 
}); 

好,太好了,這工作。我的控制器不包含與問題相關的任何內容(只是一個動作),所以我會通過語法突出顯示來消除你的死亡。下面是我的模板,我想呈現片段:

{{#if model.identities}} 
    <li> 
    {{view 'select' classNames='topcoat-select' content=model.identities value=selectedIdentity size=6 optionValuePath='content.userID'}} 
    </li> 
{{/if}} 

如果從查詢結果爲空(即該塊不運行),一切都很好,但是當我有結果(這是整個點),灰燼拋出,給我:

Error: Assertion Failed: The value that #each loops over must be an Array. You passed [[object Object],[object Object]]

這是推動我堅果,因爲這是明確的數組!我嘗試了各種使用Ember.AEmber.ArrayProxy的醜陋黑客,但他們最終都導致了同樣的錯誤。

這裏的任何幫助是大大讚賞。

回答

0

而且,事實證明,從存儲適配器的結果回報其實acual陣列...... -.-

謝謝灰燼,你是對所有沿。

+0

你做了什麼代碼變更?我有這個相同的問題,我將數組包裝在Em.A()中。我好奇,因爲這不適合你。 – blessenm

+0

我只是將對象的數組轉換爲我的存儲適配器返回給一個真正的Array的對象:'Array.apply(null,results)' – sp0rkyd0rky