Angular - ngOptions模型值不更新

时间:2016-02-25 16:59:23

标签: angularjs ng-options

开始使用Angular,我遇到了让模型绑定适用于模板中的select选项的问题。

我在模板中选择了以下ng-options:

<select ng-model="listenercount" ng-options="n for n in [] | range:0:1000" ng-change="listenersUpdate()"></select>

我的过滤器看起来像这样:

angular.module('myapp').filter('range', function() {
    return function(input, min, max) {
        min = parseInt(min);
        max = parseInt(max);
        for (var i=min; i<max; i++) {
            input.push(i);
        }
        return input;
    };
});

我的选择会根据我的过滤器正确显示选项0-1000。

在我的控制器中,我有以下内容:

$scope.listenercount = 0;

$scope.listenersUpdate = function() {
    alert('new listener count is now:' + $scope.listenercount);
}

每次我按预期更改选择时都会弹出我的警告消息,但它始终显示$ scope.listenercount = 0. $ scope.listenercount模型绑定似乎不更新值。

明显我做错了什么?

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
<body ng-app="myapp">
  <script>
  angular.module('myapp', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.listenercount = 0;

$scope.listenersUpdate = function() {
    alert('new listener count is now:' + $scope.listenercount);
}

    }]);
    angular.module('myapp').filter('range', function() {
    return function(input, min, max) {
        min = parseInt(min);
        max = parseInt(max);
        for (var i=min; i<max; i++) {
            input.push(i);
        }
        return input;
    };
});
</script>
<div ng-controller="ExampleController">
  <select ng-model="listenercount" ng-options="n for n in [] | range:0:1000" ng-change="listenersUpdate()"></select>

  <tt>debug = {{confirmed}}</tt><br/>
  <tt>counter = {{counter}}</tt><br/>
</div>
</body>
&#13;
&#13;
&#13;

这是按预期工作的