选择先前选择的选项后,不会触发ng-change
因此,我无法处理相同的下一个选择。

<select ng-model="selectedOption" ng-change="handleSelection()">
    <option value="A" selected>A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
</select>

我想向用户显示最后选择的选项,并希望处理相同的内容。
但是由于ng-model不会在下一个相同的选项上更改,因此不会触发ng-change

如何处理这种情况?

最佳答案

您可以不通过ng-change进行检查,只需检查点击次数即可:

每次打开click event后都会提高1 select
选择一项后,第二个click event上升

在失去焦点之后,我们使用blur event清除点击计数

通过这种方式,您将获得不含change eventwithout selecting new item的选定项目:

<select ng-model="selectedOption" ng-click="handleSelection()" ng-blur="resetClickCount()">
    <option value="A" selected>A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
</select>

-
app.controller("myCtrl", function($scope) {
    $scope.clickCount = 0;

    $scope.handleSelection = function() {
        $scope.clickCount++;
        if ($scope.clickCount==2) {
            alert($scope.selectedOption);
            $scope.clickCount = 0;
        }
    }

    $scope.resetClickCount = function() {
        $scope.clickCount = 0;
    }
});

关于javascript - 无法选择先前选择的选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41444020/

10-12 00:06
查看更多