我在我的Ember.js項目中使用來自https://github.com/iStefo/ember-select-2的ember-select-2組件。項目列表是相當簡單的,在該路由採用Ember公司的數據加載:在Ember Data中使用ember-select-2
setupController: function(controller, model) {
this._super(controller, model);
var otherModelsPromises = {
accomodationTypes: this.store.find('accomodation-type'),
};
Ember.RSVP.hash(otherModelsPromises).then(function(results) {
controller.set('accomodationTypes', results.accomodationTypes.get('content'));
});
而且在我的模板,我有:
{{select-2 placeholder="Filter By" content=accomodationTypes cssClass="search-filter-dropdown"}}
,這裏是從URL返回的JSON( http://localhost:4200/api/accomodationTypes)
{"accomodationTypes":[{"id":1,"text":"Bed & Breakfast","description":"","svgid":""},
{"id":2,"text":"Self Catering","description":"","svgid":""},
{"id":3,"text":"Hotel","description":"","svgid":""},
{"id":4,"text":"Boutique Hotel","description":"","svgid":""}]}
我可以看到承諾最終解決路線和數據正常返回。然而,當我嘗試並點擊選擇2控制,我得到以下錯誤控制檯:
Uncaught Error: Assertion Failed: select2 has no content!
如果我在控制器中使用靜態數據,它的工作原理。我有一種感覺,因爲承諾在select2組件渲染時沒有解決,它會失敗嗎?內容變量似乎沒有設置使用承諾? 我可以嘗試使用查詢,但我不希望提前查找類型。我只想顯示一個簡單的下拉菜單,有多個選項和刪除選項。
我錯過了什麼,或者這是一個錯誤?
編輯:這是我使用(型號/住宿-type.js)
import DS from 'ember-data';
export default DS.Model.extend({
text: DS.attr('string'),
description: DS.attr('string'),
svgid:DS.attr('string'),
});