【问题标题】:Can't get current value from select in Ember 2无法从 Ember 2 中的选择中获取当前值
【发布时间】: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

标签: select ember.js


【解决方案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"}}>

【讨论】:

  • 谢谢!如上所述,我总是尝试使用额外的双引号来做到这一点 -> onchange="{{action...}}"
猜你喜欢
  • 1970-01-01
  • 2018-02-04
  • 2017-05-04
  • 2014-03-22
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
相关资源
最近更新 更多