AngularJS 手表不适用于下拉菜单 (select) 更改
AngularJS watch not working for drop-down(select) change
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>
你有太多的错字尝试设置 $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>
代码中使用特殊字符代替普通引号,并使用 $scope.options[0]
代替 options[0]
。
工作的 plunker here
我正在添加工作解决方案。
我已将 $scope.selectedId 更改为 $scope.filters.selectedId 并在 $scope.filters.selectedId 上添加了手表。
我不知道为什么会这样。
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>
你有太多的错字尝试设置 $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>
代码中使用特殊字符代替普通引号,并使用 $scope.options[0]
代替 options[0]
。
工作的 plunker here
我正在添加工作解决方案。
我已将 $scope.selectedId 更改为 $scope.filters.selectedId 并在 $scope.filters.selectedId 上添加了手表。
我不知道为什么会这样。