2016-02-25 90 views
1

Angular入門並且遇到問題讓模型綁定可用於模板中的選擇選項。Angular - ngOptions模型值不更新

我有以下的NG-選項中選擇一個模板:

<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模型綁定似乎不會更新值。

任何明顯的我做錯了?

+0

你在瀏覽器控制檯的任何錯誤? – csharpfolk

+0

好問題..瀏覽器的JavaScript控制檯中沒有錯誤。 –

+0

你可以發佈整個控制器代碼嗎? – csharpfolk

回答

0

<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>

這正按預期

+0

嗯..當我使用{{listenercount}}在我的模板中顯示選定的值時,只要我更改選擇值,頁面就會在瀏覽器中更新。然而,我的控制器仍然顯示$ scope.listenercount爲0. 我改變了我的控制器使用console.log而不是警告每個另一個建議,這並沒有改變任何東西。 –

+1

@John我的猜測是你的select和你的{{listenercount}}是在ng-if或者ng-repeat或者任何指令中創建自己的作用域。發佈一個plunkr重現錯誤 –

+0

我添加了一個setInterval計時器來輸出我的$ scope.listenercount到console.log,它永遠不會改變。不管我改變選擇。 必須與我的ng-model ='x'的某些語法原因沒有綁定到$ scope.x。沒有?? –