angularjs – 选择ng-option更改时获取值

前端之家收集整理的这篇文章主要介绍了angularjs – 选择ng-option更改时获取值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的.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/

原文链接:https://www.f2er.com/angularjs/146916.html

猜你在找的Angularjs相关文章