我正在努力解决这个问题。我想从模板到组件传递一个选择值。 这是我的模板
<select name="bank" class="form-control" id="sel1" onchange={{action "updateValue" value="bank"}}>
{{#each banks as |bank|}}
<option value={{bank.id}}>{{bank.name}}</option>
{{/each}}
{{log bank.id}}
</select>
这是我的组件
import Ember from 'ember';
export default Ember.Component.extend({
store: Ember.inject.service('store'),
banks: Ember.computed(function() {
return this.get('store').findAll('bank');
}),
didUpdate() {
const banques = this.get('banks');
const hash = [];
banques.forEach(function(banque) {
hash.push(banque.get('name'));
});
Ember.$(".typeahead_2").typeahead({ source: hash });
},
actions: {
expand: function() {
Ember.$('.custom-hide').attr('style', 'display: block');
Ember.$('.custom-display').attr('style', 'display: none');
},
updateValue(selectedValue) {
this.set('bank.id', selectedValue);
},
login() {
console.log(this.get('bank.id'));
}
}
});
我得到了这个漂亮的错误:属性集失败:路径“bank”中的对象无法找到或被破坏。
有什么想法吗?感谢
答案 0 :(得分:1)
当您使用value
属性时,您需要指定要从第一个参数(event
)检索的正确属性名称。在你的情况下,你刚才提到bank
- 在event
对象中找不到。这就是造成错误的原因。
onchange={{action "updateValue" value="target.value"}}
内部组件
updateValue(selectedValue) {
this.set('bank.id', selectedValue);
},