Ember无法从模板到组件获得选择值

时间:2017-07-21 09:57:13

标签: select ember.js

我正在努力解决这个问题。我想从模板到组件传递一个选择值。 这是我的模板

<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”中的对象无法找到或被破坏。

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:1)

当您使用value属性时,您需要指定要从第一个参数(event)检索的正确属性名称。在你的情况下,你刚才提到bank - 在event对象中找不到。这就是造成错误的原因。

onchange={{action "updateValue" value="target.value"}}

内部组件

updateValue(selectedValue) {
  this.set('bank.id', selectedValue);
 },