【发布时间】:2016-09-23 14:14:42
【问题描述】:
每次用户更改选择组件时,我都会尝试获取该值。但该值始终返回“未定义”。
我浏览过所有 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...}}" 语法,但是没有调用该操作。
此时我的路由或控制器中没有任何逻辑来处理这个问题。
感谢您的帮助!
【问题讨论】:
-
为什么要在组件文件中保留这个
tagName: ''?除此之外,一切对我来说都很好。只需删除该行并检查 -
刚刚检查过,没有帮助。
tagName: ''阻止 Ember 将组件包装在 ember-view div 中。不过谢谢! -
而不是这个
{{action "getSelectValue" on="change" value="target.value"}}使用这个onchange={{action "getSelectValue" value="target.value"}}- 也许你可以检查这个twiddle