Javascript 选择使用ng选项不更新控制器中的模型
我有以下数组:Javascript 选择使用ng选项不更新控制器中的模型,javascript,angularjs,Javascript,Angularjs,我有以下数组: [{ "Id": 3, "Name": "A" }, { "Id": 3, "Name": "B" }, { "Id": 3, "Name": "C" }] 我在以下角度视图中使用此选项: <select ng-model="selectedCategory" ng-options="category.Name for category in categories"></select> <pre>{{
[{
"Id": 3,
"Name": "A"
},
{
"Id": 3,
"Name": "B"
},
{
"Id": 3,
"Name": "C"
}]
我在以下角度视图中使用此选项:
<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>
{{selectedCategory | json}}
移动
控制器看起来像:
var moveCategoryController=函数($scope、category、categoriesService){
var getCategories=函数(){
categoriesService.getCategories()
.成功(功能(结果){
$scope.categories=[];
对于(var i=0;i
对于信息,注入控制器的category
对象是一个category对象(控制器正在模态中使用,并且该类别从父页面传递给它)
问题
加载时,选择绑定到数据精细,当用户更改选择列表时,
内容将使用新选择的类别正确更新
问题是,当我单击“移动”按钮(调用控制器作用域上的Move()
函数)时,作用域的selectedCategory
属性尚未更新。例如,如果我选择类别“B”,警报仍然会弹出“A”
因此,
ng model
似乎是在视图中更新的,而不是在控制器中更新的 你能做一个提琴吗?事实上,我用你的静态数据检查了你的代码,它对我有效。一个plunker/fiddle会很好。yesAlso,这可能是由于你的模态创建了不同的作用域造成的,那部分看起来如何?我看不出你的代码有任何问题;如果您在更改所选列表选项时在元素内部获得更新值,那么在调用'move()'methodhey@Graham时也将获得更新值。您可以就此向我们进行更新吗?
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);