4
我已经建立一个自定义下拉元素,我想用它来显示一两件事情:使用this.store.query()在计算财产
{{drop-down items=types selectionChanged="typeChanged"}}
{{drop-down items=meters selectionChanged="meterChanged"}}
在我的控制我米设定值如下:
types: [
{ value: "latest", name: "Latest Widget" },
{ value: "max", name: "Maximum Widget" },
{ value: "average", name: "Average Widget" },
],
meters: Ember.computed(function() {
var meters = this.store.query('meter', { account_id: 2 });
return meters;
}),
两者的值被正确显示:
<select id="ember826" class="ember-view form-control">
<option value="">Please select a widget type...</option>
<option value="latest">Latest Widget</option>
...
</select>
<select id="ember849" class="ember-view form-control">
<option value="2">Meter 1</option>
</select>
我的下拉组件使用下列计算出所选的值:
change: function(event) {
var items = this.get('items');
var index = event.target.selectedIndex;
var selected = items ? items[index - 1] : null;
console.log(selected); // error occurs here
this.sendAction('selectionChanged', selected);
}
现在这对'类型'很好,但'米',选择是“未定义”。
我然后只在该行之前并添加console.log(JSON.stringify(items));
,为米变化,它给了我下面的错误:
Uncaught TypeError: Converting circular structure to JSON
如果我添加{{log types}}
和{{log meters}}
到模板中,我得到以下,这可能一些线索它:
类型:
(米):
我注意到,后者有它包裹在一对夫妇的“内容”键层,所以也许承诺没有被妥善解决?
编辑
如果我使用this.store.query的路线,然后{{数}}模型那么它包裹在一个单一的“内容”键,它可以恩贝尔正确解释。有没有任何理由在控制器中做这件事应该创造额外的一个?
嗨Kingpin2k,谢谢:) –