AngularJS的NgChange没有被调用

AngularJS NgChange not called

本文关键字:调用 NgChange AngularJS      更新时间:2023-09-26

在Angularjs中,我添加了下面的select控件来侦听更改事件

<select ng-model="Ruoli" ng-options="ruolo.Nome for ruolo in ruoli" class="form-control" ng-change="setNotRuolo(Ruoli.Id)"></select>

当我选择一个项目时,函数

setNotRuolo ()

被正确调用,但是当我使用键盘上的向下键更改项目时,该函数没有被调用。

如何解决这个问题?

这个问题已经在GitHub上讨论过了

看看这个

演示工作

<div ng-app='myApp' ng-controller="Controller">
    <label for="browsers">Pick A Name:</label>
    <form name="myForm">
        <select dselect required id="browsers" ng-model="selectValue" ng-options="browser for browser in browsers">
            <option value="">Select One</option>
        </select>
        <br>
        <button ng-click="submit()" ng-disabled="!myForm.$valid">submit</button>
    </form>
    <br>
    <br>You Selected: {{selectValue || "You didn't pick"}}</div>
</div>
脚本

var app = angular.module('myApp', []);
app.controller('Controller', function ($scope) {
    $scope.browsers = ['Manu', 'Mathew', 'Sunny'];
    $scope.submit = function () {
        alert("submit");
    }
});
if (navigator.userAgent.indexOf("Sunny") !== -1) {
    app.directive("select", function () {
        return {
            restrict: "E",
            require: "?ngModel",
            scope: false,
            link: function (scope, element, attrs, ngModel) {
                if (!ngModel) {
                    return;
                }
                element.bind("keyup", function () {
                    element.trigger("change");
                })
            }
        }
    })
}