2016-03-29 18 views
0

Birden çok bağımsız değişkeni bir ember eylemine aktarmaya çalışıyorum. Sorun, argümanlardan birinin değer = 'target.value' olduğu ve görünüşe göre Ember'in ikinci bir tane eklemek istemediğidir.Seçme menüsündeki bir eylemde 2 parametre 2

Bu iki parametreyi nasıl geçebilirim? value = 'target.value' sadece bir argümana ihtiyaç duyarsam çalışır.

Bu şekilde yazmayı denedim ama kategori tanımlanmamış.

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

Ben de bu yolu denedim ama Kor böyle bir şey deneyin

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

Error: Parse error on line 4: 
....value' selectorItem.name }}> 

cevap

2

için: Burada

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

.... 

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

bir örnek Bunu başarmak için kapatma eylemlerini kullanmalısınız. Reference to Invoking Action

Kontrolör

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

}); 

Şablon

<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

'değeri' için tanımsız döndürür value = 'target.value' ile çalışın .. – Wesley

+0

no, value = 'target.value', seçili değeri döndürür Bir argüman olarak seçici içinde tion – Wesley

+0

ah evet şimdi ne demek istediğimi görüyorum –