选择菜单的操作中的成员2参数

ember 2 parameters in a action of a select menu

本文关键字:参数 成员 操作 菜单 选择      更新时间:2023-09-26

我试图在ember操作中传递多个参数。问题是其中一个参数是value='target.value',显然Ember不喜欢添加第二个参数。

如何传递这两个参数?value='target.value'在我只需要一个参数的情况下有效。

我试着用这种方式写它,但类别没有定义。

{{#each selectorsData as |selectorItem|}}
<select onchange={{ action selectorItem.action value='target.value' category='selectorItem.name' }}>

我也试过这种方法,但Ember给了我一个错误

{{#each selectorsData as |selectorItem|}}
   <select onchange={{ action selectorItem.action value='target.value' selectorItem.name }}>
 Error: Parse error on line 4:
 ....value' selectorItem.name }}>

要实现这一点,必须使用闭包操作。引用行动

控制器

export default Ember.Controller.extend({
  appName: 'Ember Twiddle',
  selectorsData: [
    { name: 'mike', value: '1', action: 'alert', options: ["1", "2"] },
    { name: 'steve', value: '2', action: 'alert', options: ["1", "2"]  }
  ],
  actions: {
    alert(value, name, target) {
      alert("Hello: " + value + " - " + name + "-" + target);
    }
  }
});

模板

<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
{{#each selectorsData as |selectorItem|}}
    <label>{{selectorItem.name}}</label>
   <select onchange={{action (action selectorItem.action selectorItem.value selectorItem.name) value="target.value"}}>
        {{#each selectorItem.options as |option|}}
        <option value={{option}}>{{option}}</option
      {{/each}}
   </select>
   <br>
{{/each}}

扭曲

试试这样的东西:

<select onchange={{action selectorItem.action target.value selectorItem.name}}>
....
yourAction: function(targetValue, selectorItemName) {..}

以下是一个示例:http://jsfiddle.net/nvfm3yz1/