2016-11-23 9 views
0

ng-repeatでselectオプションを作成しましたが、変更時に設定された関数は呼び出されません。ng-repeatはオプション付きでは動作しませんが、ng-optionsで動作します

<select> 
<option ng-model="level1Selected" ng-repeat="item1 in level1" ng-change="setLevel2()" value="{{item1}}">{{item1}}</option> 

私はNG-オプションを使用して同じことを再作成し、関数が呼び出されます:

<select ng-options="item1 for item1 in level1" ng-model="level1Selected" ng-change="setLevel2()"></select> 

私は、ドキュメントをチェックして、そして私はこの違いの理由を見ません。変数level1は文字列の配列なので、どうして違うのか理解できません。

機能は、現在はconsole.logとプレースホルダです:

$scope.setLevel2 = function() { 
    console.log("value: "); 
} 
+1

'select'の値が' select'の値であるため 'ng-change'を' option'に入れません – mic4ael

+1

'ng-change'は' select'/'input'で動作しますが、' option'タグでは動作しません。 –

答えて

3

あなたはNG-モデルとselectタグでNG-変更を配置する必要があることを行いたい場合は、これを試してみてください。

<select ng-model="level1Selected" ng-change="setLevel2()"> 
    <option ng-repeat="item1 in level1" value="{{item1}}">{{item1}}</option> 
</select> 
+1