2016-09-23 18 views
0

ユーザーがselectコンポーネントを変更するたびに値を取得しようとしています。しかし、値は常に 'undefined'を返します。Ember 2でselectから現在の値を取得できません

私はすべてのStackoverflowの質問と他のサイトを通過しましたが、成功しません。私はここで何かを逃しているように感じる。 Ember 2.8を使用しています。

マイコンポーネントテンプレート:

<div class="form-group"> 
    <label for="{{selectId}}">{{selectTitle}}</label> 
    <select name="{{selectId}}" id="{{selectId}}" class="form-control" {{action "getSelectValue" on="change" value="target.value"}}> 
     <option value="0" selected>{{selectDefault}}</option> 
     {{#each model as |choice|}} 
      <option value={{choice.id}}>{{choice.name}}</option> 
     {{/each}} 
    </select> 
</div> 

マイコンポーネントの論理:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    tagName: '', 
    currentValue: null, 
    actions: { 
     getSelectValue(value) { 
      console.log(value); //always returns undefined 
     } 
    } 
}); 

私はこのようにそれを呼んでいる:テンプレートで

{{select-control model=model.tasks selectTitle="Task" selectDefault="Choose Task" selectId="taskSelect"}} 

私も使用しましたonchange = "{{action ...}}"構文が、アクションは呼び出されませんでした。

この時点では、私のルートやコントローラでこれを処理するロジックがありません。

ありがとうございました! '' `コンポーネントファイル内:

+0

への変更上記の行をなぜあなたはこの' tagNameをしておくのですか?これ以外はすべて私にとっては大丈夫です。その行を削除して – kumkanillam

+0

をチェックしてください。 'tagName: '''は、Ember-view div内のコンポーネントをEmberがラップするのを防ぎます。しかし、ありがとう! – plck

+1

代わりに、この 'on {" action "getSelectValue" value = "target.value"}} 'を使用します。これを確認できます[twiddle](https://ember-twiddle.com/f0e54b5486e1279f6c08f46c716a833a?openFiles=templates.application.hbs%2C) – kumkanillam

答えて

1
<select name="{{selectId}}" id="{{selectId}}" class="form-control" {{action "getSelectValue" on="change" value="target.value"}}> 

<select name="{{selectId}}" id="{{selectId}}" class="form-control" onchange={{action "getSelectValue" value="target.value"}}> 
+0

ありがとうございました!上で述べたように、私は常に二重引用符をつけてそれをやろうとしていました - > 'onchange =" {{action ...}} "' – plck

関連する問題