ng-change 不适用于 ng-repeat with options 但适用于 ng-options
ng-change does not work with ng-repeat with options but works with ng-options
我已经使用 ng-repeat 创建了 select 选项,但是永远不会调用使用 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: ");
}
您需要触发 ng-change
指令到 select
元素。
每次更改值时都会触发 ng-change
事件。
这是一个可行的解决方案:jsfiddle
<select ng-model="level1Selected" ng-change="setLevel2()">
<option value="{{item1}}">{{item1}}</option>
</select>
JS
$scope.setLevel2 = function() {
alert();
}
如果你想这样做,你需要将 ng-model 和 ng-change 放在 select 标签中,试试这个:
<select ng-model="level1Selected" ng-change="setLevel2()">
<option ng-repeat="item1 in level1" value="{{item1}}">{{item1}}</option>
</select>
我已经使用 ng-repeat 创建了 select 选项,但是永远不会调用使用 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: ");
}
您需要触发 ng-change
指令到 select
元素。
每次更改值时都会触发 ng-change
事件。
这是一个可行的解决方案:jsfiddle
<select ng-model="level1Selected" ng-change="setLevel2()">
<option value="{{item1}}">{{item1}}</option>
</select>
JS
$scope.setLevel2 = function() {
alert();
}
如果你想这样做,你需要将 ng-model 和 ng-change 放在 select 标签中,试试这个:
<select ng-model="level1Selected" ng-change="setLevel2()">
<option ng-repeat="item1 in level1" value="{{item1}}">{{item1}}</option>
</select>