我正在尝试在自己的组件中使用ember-select-guru。 .hbs元素看起来像这样。 {{ember-select-guru multiple=true value=values options=options onSelect=(action "onSelect")
和我的.js看起来像这样
values: Ember.computed('user' function() {
const values = [];
this.get('user.listOfThings').forEach(value => {
values.push(value.get('name'));
});
return values;
}),
与options数组类似。
我的问题是value.get('name')
中的字符串不会显示。它肯定是在拾取阵列,因为合适的元素中出现了正确数量的元素,但它们只是空的div元素。变量values
最终成为一个字符串数组,似乎在其他地方正常工作。有人知道我不知道的事情吗?我无法找到docs或source code中的任何内容来帮助我。
我也愿意使用其他行为相同的东西。这是它在docs中的外观示例。
答案 0 :(得分:0)
我刚刚找到答案。我查看了docs页面的源代码,发现该组件似乎正在寻找一个具有name字段的对象数组。幸运的是,我的东西列表已经有了name属性,我只需要调用.toArray()。代码看起来像这样:
values: Ember.computed('user', function() {
return this.get('user.listOfThings').toArray();
}
但是在更一般的情况下,您需要使用:
values: Ember.computed('user', function() {
var values = [];
this.get('user.listOfThings').forEach(value => {
values.push({ name: value.get('attributeYouWant'), other: other });
};
return values;
}
这有点有用,因为字符串数组不是那么有用,但它可能比在浏览器的开发工具中查看网页的源代码要清楚一点。