在ng-change中传递对象键

时间:2016-10-17 17:06:37

标签: angularjs ng-options angularjs-ng-options angularjs-ng-change

在ng-options是对象的多选元素中,有没有办法在ng-change中传递对象键或值?

在下面的例子中,$scope.check函数没有收到任何参数,但希望它能获得密钥或值。

<select ng-model="$scope.someArray" ng-change="$scope.check(key)" ng-options="key as val for (val, key) in $scope.options" multiple></select>

,其中 $scope.options = {a: 1, b: 2}

2 个答案:

答案 0 :(得分:2)

更改您的选择,您不应在视图中使用 $scope ,也可以使用ng-model的变量并将其传递到 check()功能

<强> HTML:

 <div class="media-list" ng-controller="dishDetailController">
   <select ng-model="selected"  ng-change="check(selected)" ng-options="key as val for (val, key) in options"></select>
  </div>

<强>控制器

app.controller("dishDetailController", ["$scope",
  function($scope) {
   $scope.selected ;
   $scope.options = {a: 1, b: 2};
   $scope.check = function(val){
    alert(val); 
   }
  }
]);

<强> DEMO

答案 1 :(得分:0)

试图让这个适合你,这是选择

<select class="form-control" ng-change="vm.change(vm.res)" ng-model="vm.res" ng-options="value as key for (key , value) in vm.options"></select>

以下是codepen

中的链接