我有一个非常有趣的问题。有2个下拉菜单,有选项 0 =排除,1 =包含,3 =仅 当用户想要从这2个列表中选择3时,另一个应该更改为0-Exclude。但是当我尝试这个代码时,它会相互调用,结果所选的(仅限3个)下拉列表显示0-Exclude和其他3-Only,这是相反的。
这是代码
$scope.lockedChanged = function() {
if ($scope.data.lockedGldata == 2) {
$scope.data.deactivatedGldata = 0;
}
};
$scope.deactivatedChanged = function () {
if ($scope.data.deactivatedGldata == 2) {
$scope.data.lockedGldata = 0;
}
};
<div class="form-group">
<label for="lockedGlOption" class="col-sm-3 control-label">Locked G/L:</label>
<div class="col-sm-3">
<select class="form-control" required ng-init="data.deactivatedGldata = 0"
id="lockedGlOption"
ng-model="data.deactivatedGldata"
ng-options="o.id as o.text for o in lockedGlOptions"
ng-change="lockedChanged()">
<option value="" disabled>Select an option...</option>
</select>
</div>
</div>
<div class="form-group">
<label for="DeactivatedGlOption" class="col-sm-3 control-label">Deactivated G/L:</label>
<div class="col-sm-3">
<select class="form-control" required ng-init="data.lockedGldata = 0"
id="DeactivatedGlOption"
ng-model="data.lockedGldata"
ng-options="o.id as o.text for o in DeactivatedGlOptions"
ng-change="deactivatedChanged()">
<option value="" disabled>Select an option...</option>
</select>
</div>
</div>
答案 0 :(得分:1)
我认为,当你点击第一个选择时。它监听模型deactivatedGlData的更改,并且在lockedChanged函数中,分配给此下拉列表的ng-change,则存在不匹配。 它听取另一个下拉菜单,而不是自己的下拉菜单,这就是它反向呈现的原因。
您可以尝试切换ng-change的顺序吗?
而不是按顺序排列两个下拉列表:
ng-change="lockedChanged()">
ng-change="deactivatedChanged()">
写:
ng-change="deactivatedChanged()">
ng-change="lockedChanged()">