【发布时间】:2013-08-25 15:11:49
【问题描述】:
我在控制器中定义了一个范围,如下所述:
控制器:
var app = angular.module('app', ['ui.select2']);
app.controller('MyCtrl',
[
'$scope',
'$q',
'$timeout',
function ($scope, $, $timeout) {
$scope.data = {};
$scope.countries = [{
name : 'India', code : 'IA'
}, {
name : 'Israel', code : 'IS'
}];
$scope.selectedCountries = [
'IA'
];
$scope.$watch('selectedCountries', function(newValue, oldValue) {
console.log ('data');
});
]);
视图看起来像这样:
<select
ui-select2
multiple
ng-model="selectedCountries"
data-placeholder="Choose or Search for countries"
name="countries"
style="width:200px;">
<option ng-repeat="country in countries" value="{{country.code}}">{{country.name}}</option>
</select>
现在,当使用选择下拉菜单更改控制器中的值时,值更改会反映在视图中。但是手表永远不会被调用,因为范围没有改变。知道为什么范围没有更新吗?
【问题讨论】:
-
你能展示一下视图吗?
-
有关您编写的代码问题的问题必须在问题本身中描述具体问题 - 并包括重现问题的有效代码。
-
这可能与实际上没有触及 $scope.selectedCountries 变量的视图相关联。您能否向我们展示跟踪问题的完整代码?
-
我正在使用 Angular js 的 select2 插件,它反映了视图上的变化,而不是控制器中的变化。
-
更新了我的代码,希望对您有所帮助..
标签: javascript angularjs angularjs-scope jquery-select2