我有以下数组:
[{
"Id": 3,
"Name": "A"
},
{
"Id": 3,
"Name": "B"
},
{
"Id": 3,
"Name": "C"
}]
我在以下Angular视图中使用它:
<select ng-model="selectedCategory" ng-options="category.Name for category in categories"></select>
<pre>{{selectedCategory | json}}</pre>
<button type="button" ng-click="move()">Move</button>
控制器看起来像:
var moveCategoryController = function ($scope, category, categoriesService) {
var getCategories = function () {
categoriesService.getCategories()
.success(function (result) {
$scope.categories = [];
for (var i = 0; i < result.Results.length; i++) {
var cat = result.Results[i];
if (cat.Id !== category.Id) {
$scope.categories.push(cat);
}
}
$scope.selectedCategory = $scope.categories[0];
})
.error(function () {
$scope.errorMessage = "There was a problem loading the categories.";
});
};
getCategories();
$scope.move = function () {
alert($scope.selectedCategory.Name);
};
}
bpApp.controller("moveCategoryController", moveCategoryController);
有关信息,注入控制器的category
对象是一个类别对象(控制器正在模态中使用,类别从父页面传递给它)。
问题
加载时,选择绑定到数据正常,当用户更改选择列表时,<pre>
内容将使用新选择的类别正确更新。
问题是当我单击Move按钮(调用控制器作用域上的move()
函数)时,作用域的selectedCategory
属性尚未更新。例如,如果我选择类别“B”,警报仍会弹出“A”。
因此,似乎ng-model
在视图中更新,但在控制器中没有更新?!