2017-05-26 47 views
1

AngularJS手表不适用于下拉式更改。这里是我的代码,这不完全是原始代码,我只是模拟。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> 
+1

你的代码中有一些错误的字符 - “selectedId”和“selectedId”。这只是一个坏的复制粘贴吗? –

+1

实际代码中存在不同的符号? – Anton

+0

@Anton检查更新的代码。 – SANN3

回答

0

我加入了可行的解决方案。

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

我不知道这是为什么起作用。

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>

+0

检查更新的代码。 – SANN3

+0

那么是什么问题?我可以看到它是否没有错字,然后它可以正常工作。 @ SANN3 – Jenny

0

特别字符用于代码而不是普通引号,并使用$scope.options[0]而不是options[0]

工作plunker here

相关问题