无法从选项选择中触发操作

时间:2015-09-24 07:54:07

标签: ember.js ember-cli

我的模板中有以下内容:

select case when LEN(@VAR) > 7 and ISDATE(@var)=1 then 'Valid Date' 
            when LEN(@var) < 8 or  ISDATE(@var)=0 then 'Invalid Date' END 

在控制器中,我有:

<select>
  {{#each sortedManufacturers key="id" as |manufacturer|}}
    <optgroup label="{{manufacturer.name}}">
      {{#each manufacturer.cars key="id" as |car|}}
        <option {{action "carSelected" car}} value="{{car.model}}">{{car.model}}</option>
      {{/each}}
    </optgroup>
  {{/each}}
</select>

actions: { carSelected(car) { console.log(car); } } 中选择选项时。它似乎没有触发select动作。

任何想法为什么?

2 个答案:

答案 0 :(得分:3)

在Ember&gt; 1.13您可以执行以下操作:

<select onchange={{action "carSelected" value="target.value"}}>
   <!-- ... -->
</select>

使用组件JS:

export default Component.extend({
  actions: {
    carSelected(car) {
      // ..
    }
  }
});

或者您可以使用未加引号的“关闭操作”表单:

<select onchange={{action carSelected value="target.value"}}>
   <!-- ... -->
</select>

使用组件JS:

export default Component.extend({
  carSelected(car) {
    // ..
  }
});

有关所有这些内容的详情,请参阅improved actions RFC

答案 1 :(得分:0)

我不知道为什么点击事件没有以这种方式绑定到选项。我相信最好在select上使用change事件。

<select {{action 'carSelected' on='change'}}> ... </select>

以下是实施细节:http://emberjs.com/deprecations/v1.x/#toc_ember-select