【问题标题】:ember 2 parameters in a action of a select menu选择菜单操作中的 ember 2 参数
【发布时间】:2016-07-17 11:06:38
【问题描述】:

我试图在 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 }}>

【问题讨论】:

    标签: javascript ember.js parameters components


    【解决方案1】:

    要完成此操作,您必须使用关闭操作。 Reference to Invoking Action

    控制器

    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}}
    

    Twiddle

    【讨论】:

    • 否,value='target.value' 将选择器内的选择作为参数返回
    • 啊,我明白你的意思了
    • 有什么想法吗?我看不到任何方法......:S
    【解决方案2】:

    试试这样的:

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

    这是一个例子:http://jsfiddle.net/nvfm3yz1/

    【讨论】:

    • Pat,感谢您的回答,但仍然无法正常工作,您的解决方案返回 undefined for 'value'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多