Ember - 如何将选定的选项值作为参数传递给动作处理程序

时间:2016-02-03 16:51:15

标签: javascript jquery ember.js ember-data

我是新来的。任何人都可以帮助我如何将选定的值作为参数传递给动作处理程序'onSelectEntityType'。我尝试了以下内容,我能够触发操作。

<select class="form-control" id="entityType" {{action 'onSelectEntityType' on='change'}} >
    <option value="">Select</option>
    {{#each model as |entityType|}}
    <option value="{{entityType.id}}">{{entityType.entityTypeName}}</option>
    {{/each}}
</select>

组件js文件

import Ember from 'ember';

export default Ember.Component.extend({
    actions: {
      onSelectEntityType(value) {
         console.log(value)
      }
    }
});

3 个答案:

答案 0 :(得分:11)

如果您使用的是Ember 1.13.3或更高版本,则可以执行以下操作:

file_chunk[16:] #16th byte to the end of the string

file_chunk[16] #just the 16th byte

file_chunk[16:20] #4 bytes starting at 16

要获得比我提供的更好的解释,请参阅:http://balinterdi.com/2015/08/29/how-to-do-a-select-dropdown-in-ember-20.html

答案 1 :(得分:1)

自1.13以来,Ember处理<select>的方式发生了变化。使用HTMLBars现在我们可以直接向onchange属性添加操作。至于传递值,您可以通过将target.value传递给您的操作来执行此操作:

<select onchange={{action 'onSelectEntityType' value="target.value"}} >

Here's a sample twiddle

答案 2 :(得分:1)

在余烬辛烷中

//component template  file
<select  {{on "change" this.setItemValue}}>
  {{#each @items as |item|}}
  <option value={{item}}>{{item}}</option>
  {{/each}}
</select>


 // component class file
 @action
  setItemValue(evt) {
    let itemValue = evt.target.value;
    evt.preventDefault();

  }