AngularJS观察不适用于下拉(选择)更改

时间:2017-05-26 11:57:43

标签: angularjs angularjs-watch

AngularJS观看不适用于下拉更改。这是我的代码,这不是原始代码,我只是模拟。

代码:

<body ng-app="app" ng-controller="ctrl">
<select ng-model=“selectedId" ng-options="val as val.name for val in options | orderBy:'id'">
</select>
<script>
angular.module("app",[])
  .controller("ctrl",['$scope',function($scope){
    $scope.options = [
      {"id":1, "name":"First"},
      {"id":2, "name":"Second"}
    ]
    $scope.selectedId = {"id":1, "name":"First"}
    $scope.$watch('selectedId’,function(selVal) {
       console.log(selVal);
     });
  }])
 </script>
</body>

3 个答案:

答案 0 :(得分:2)

你有太多错字尝试设置$ scope.options [0]而不是选项[0]

angular.module("app",[])
  .controller("ctrl",['$scope',function($scope){
    $scope.options = [
      {id:1, name:'First'},
      {id:2, name:'Second'}
    ]
    $scope.selectedId = $scope.options[0];
    $scope.$watch('selectedId',function(selVal) {
       console.log(selVal);
     });
  }])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<html>
<body ng-app="app" ng-controller="ctrl">
<select ng-model="selectedId" ng-options="val as val.name for val in options">
</select>
</body>
<html>

答案 1 :(得分:0)

代码中使用了特殊字符而不是普通引号,并使用$scope.options[0]代替options[0]

工作人员here

答案 2 :(得分:0)

我正在添加工作解决方案。

我已将$ scope.selectedId更改为$ scope.filters.selectedId并在$ scope.filters.selectedId上添加监视。

我不知道为什么会这样。