首页 > 解决方案 > 更改下拉/选择的值时,Angularjs 不会更新 ng-model 值

问题描述

当我更改 select 的选项值时,它的 ng-model 值不会被更改。发生这种情况是因为 Jquery 改变了值吗?因为我从 w3school 读到了关于 angularjs 的一行,只有在输入值发生实际变化时才会触发 ng-change 事件,而不是在从 JavaScript 进行更改时触发。

我想澄清一下 j 查询正在更改选项值。

请建议我正确的解决方案或告诉我代码中的错误。

这是我的html

<div class="row" ng-app="myapp" ng-controller="mycontroller" id="mainController">
    <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
        <div class="form-group">
            <p>Rooms
                <% no_of_rooms %>
            </p>
            <select ng-init="no_of_rooms='1'" autocomplete="off" ng-model="no_of_rooms" class="form-control" id="no_of_rooms" style='display:none' name="no_of_room" style="height: 39px !important;">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
            </select>
        </div>
    </div>

    <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" ng-repeat="i in getNumber(no_of_rooms) track by $index">
        <div class="form-group">
            <p>Adult (12+ YRS)</p>
            <select autocomplete="off" class="form-control" style='display:none' name="no_of_adults[]" style="height: 39px !important;">
                <option value="0">0</option>
                <option value="1" Selected>1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
            </select>

        </div>
    </div>
</div>

这是我的脚本。

var app = angular.module('myapp', [], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});
app.controller('mycontroller', function($scope , $filter) {
 $scope.getNumber = function(num) {
        return new Array(parseInt(num));   
    }
});

标签: angularjs-ng-modeljquery-eventsangularjs-ng-changeangularjs-events

解决方案


推荐阅读