Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择使用ng选项不更新控制器中的模型_Javascript_Angularjs - Fatal编程技术网

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