我已经使用ng-repeat创建了选项,但是永远不会调用带有on-change设置的函数。
<select>
<option ng-model="level1Selected" ng-repeat="item1 in level1" ng-change="setLevel2()" value="{{item1}}">{{item1}}</option>
我用ng-options重新创建了同样的东西,并调用了函数:
<select ng-options="item1 for item1 in level1" ng-model="level1Selected" ng-change="setLevel2()"></select>
我已经检查了文档,我认为没有理由存在这种差异。变量level1是一个字符串数组,所以我不明白为什么它们的行为不同。
该函数目前只是一个带有console.log的占位符:
$scope.setLevel2 = function() {
console.log("value: ");
}
答案 0 :(得分:4)
如果你想这样做,你需要在选择标签中加入ng-model和ng-change,试试这个:
<select ng-model="level1Selected" ng-change="setLevel2()">
<option ng-repeat="item1 in level1" value="{{item1}}">{{item1}}</option>
</select>
答案 1 :(得分:1)
您需要向ng-change
元素触发select
指令。
ng-change
事件会在值的每次更改时触发。
这是一个有效的解决方案:jsfiddle
<select ng-model="level1Selected" ng-change="setLevel2()">
<option value="{{item1}}">{{item1}}</option>
</select>
JS
$scope.setLevel2 = function() {
alert();
}