2016-03-29 7 views
0

emberアクションで複数の引数を渡そうとしています。 問題は、引数の1つがvalue = 'target.value'であり、明らかにEmberは2番目の引数を追加したくないということです。選択メニューのアクションで2つのパラメータをember

どのようにこれらの2つのパラメータを渡すことができますか? value = 'target.value'は、引数が1つだけ必要な場合に機能します。

私はこのように書こうとしましたが、カテゴリは未定義です。

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

答えて

2

へ:ここ

<select onchange={{action selectorItem.action target.value selectorItem.name}}> 

.... 

yourAction: function(targetValue, selectorItemName) {..} 

は一例ですこれを達成するには、クロージャーアクションを使用する必要があります。 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

+0

'の値' のundefinedを返しますvalue = 'target.value'で作業しません。 – Wesley

+0

いいえ、value = 'target.value'はセレクションを返しますセレクタの内側での議論 – Wesley

+0

ああ、あなたが今何を意味しているかを見る –

0

私にエラーを与える:http://jsfiddle.net/nvfm3yz1/

+0

パット、あなたの答えに感謝しかし、それはまだ動作していない、あなたのソリューションは、それはdoesnの – Wesley

関連する問題