EmberJS Select onChange事件未传递所选值

时间:2019-02-01 06:59:33

标签: javascript ember.js

我正在尝试从select标记中获得选定的值,我已经尝试过这些情况,但是我无法获得选定的值,有人对我声明的方式有什么问题有想法吗选择标签上的操作?

更新1

我试图在ember-twiddle上重新创建该问题,但是由于某种原因它无法像在我的项目中那样运行,因此ember-twiddle似乎没有读取该路线上声明的动作。但是,这是示例:

Example on ember-twiddle

案例1

在这种情况下,我出现了错误:

  

未捕获的TypeError:无法读取未定义的属性“应用”

模板:

 {{#each model.items as |item|}}
   <select class="form-control" onchange={{action 'ChangeCombo' item "Price" value='target.value'}}>
     <option value="">Select an option</option>
     <option value="1000">$1000</option>
     <option value="100">$100</option>
     <option value="10">$10</option> 
   </select>
{{/each}}

路线操作:

actions: {

   ChangeCombo(paramOne, paramTwo, paramThree) {

     console.info(paramOne, paramTwo, paramThree);

   },

}

案例2

在这种情况下,第一个参数是模型数组中的当前Item,第二个参数是字符串“ Price”,但第三个参数未定义,而最后一个被认为是事件对象的参数也未定义。 / p>

控制台输出:

  

{object},“价格”,未定义,未定义

模板:

{{#each model.items as |item|}}
   <select class="form-control" {{action 'ChangeCombo' item "Price" value='target.value' on='change'}}>
       <option value="">Select an option</option>
       <option value="1000">$1000</option>
       <option value="100">$100</option>
       <option value="10">$10</option> 
   </select>
{{/each}}

路线操作:

actions: {

   ChangeCombo(paramOne, paramTwo, paramThree, paramFour) {

     console.info(paramOne, paramTwo, paramThree, paramFour);

   },

}

Ember版本

  

ember-cli:3.7.1   节点:10.1.0   操作系统:win32 x64

1 个答案:

答案 0 :(得分:0)

如果您不想使用动作值选项,则不能在动作助手中直接使用其他任何参数。 您需要使用关闭操作,即

<select class="form-control" onchange={{action (action 'ChangeCombo' item "Price") value='target.value'}}>
   <option value="">Select an option</option>
   <option value="1000">$1000</option>
   <option value="100">$100</option>
   <option value="10">$10</option> 
</select>