我在我的.html页面一个下拉列表,
落下:
<select ng-model="blisterPackTemplateSelected" data-ng-options="blisterPackTemplate as blisterPackTemplate.name for blisterPackTemplate in blisterPackTemplates"> <option value="">Select Account</option> </select>
我想在用户选择一个值时执行一个操作。所以在我的控制器中:
控制器:
$scope.$watch('blisterPackTemplateSelected',function() { alert('changed'); console.log($scope.blisterPackTemplateSelected); });
但是改变下拉列表中的值不会触发代码:$ scope。$ watch(‘blisterPackTemplateSelected’,function()
因此,我尝试了另一个方法,在select标签上使用:ng_change =’changedValue()’
和
功能:
$scope.changedValue = function() { console.log($scope.blisterPackTemplateSelected); }
但blisterPackTemplateSelected存储在子范围中。我读到父项无法访问子范围。
因为Artyom说你需要使用
ngChange和传递ngModel对象作为您的ngChange函数的参数
原文链接:https://www.f2er.com/angularjs/146916.html例:
<div ng-app="App" > <div ng-controller="ctrl"> <select ng-model="blisterPackTemplateSelected" ng-change="changedValue(blisterPackTemplateSelected)" data-ng-options="blisterPackTemplate as blisterPackTemplate.name for blisterPackTemplate in blisterPackTemplates"> <option value="">Select Account</option> </select> {{itemList}} </div> </div>
js:
function ctrl($scope) { $scope.itemList = []; $scope.blisterPackTemplates = [{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"}]; $scope.changedValue = function(item) { $scope.itemList.push(item.name); } }