每次用户更改select组件时,我都会尝试获取值。但是值总是返回'undefined'。
我已经浏览过所有Stackoverflow问题和其他网站,但没有成功。我觉得我在这里错过了一些东西。 我正在使用Ember 2.8。
我的组件模板:
<div class="form-group">
<label for="{{selectId}}">{{selectTitle}}</label>
<select name="{{selectId}}" id="{{selectId}}" class="form-control" {{action "getSelectValue" on="change" value="target.value"}}>
<option value="0" selected>{{selectDefault}}</option>
{{#each model as |choice|}}
<option value={{choice.id}}>{{choice.name}}</option>
{{/each}}
</select>
</div>
我的组件逻辑:
import Ember from 'ember';
export default Ember.Component.extend({
tagName: '',
currentValue: null,
actions: {
getSelectValue(value) {
console.log(value); //always returns undefined
}
}
});
我这样称呼它:
{{select-control model=model.tasks selectTitle="Task" selectDefault="Choose Task" selectId="taskSelect"}}
在模板中我还使用了onchange =“{{action ...}}”语法,但之后没有调用该操作。
此时我的路线或控制器没有逻辑处理这个。
感谢您的帮助!
答案 0 :(得分:1)
<select name="{{selectId}}" id="{{selectId}}" class="form-control" {{action "getSelectValue" on="change" value="target.value"}}>
将上述行更改为
<select name="{{selectId}}" id="{{selectId}}" class="form-control" onchange={{action "getSelectValue" value="target.value"}}>