angularjs – 选择ng-option更改时获取值
发布时间:2020-12-17 09:09:14 所属栏目:安全 来源:网络整理
导读:我在我的.html页面一个下拉列表, 落下: select ng-model="blisterPackTemplateSelected" data-ng-options="blisterPackTemplate as blisterPackTemplate.name for blisterPackTemplate in blisterPackTemplates" option value=""Select Account/option/sel
我在我的.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存储在子范围中。我读到父项无法访问子范围。 当下拉列表中选定的值发生更改时,执行某项操作的正确/最佳方法是什么?如果它的方法1,我做错了我的代码?
因为Artyom说你需要使用
ngChange和传递ngModel对象作为您的ngChange函数的参数
例: <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); } } Live示例:http://jsfiddle.net/choroshin/9w5XT/4/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |