我的模板中有以下内容:
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
动作。
任何想法为什么?
答案 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