【问题标题】:How to get selected optgroup value in Angularjs?如何在 Angularjs 中获取选定的 optgroup 值?
【发布时间】:2017-01-25 08:35:10
【问题描述】:

对于我的应用程序,我想在选择下拉列表中获取选定的 optgroup 值。

这里是代码

HTML:

<select ng-model='theModel'   ng-change="display(theModel)" >
        <optgroup ng-repeat='group in collection' label="{{group.Name}}">
        <option ng-repeat='veh in group.Fields'>{{veh.Name}}</option>
        </optgroup>
</select>

控制器:

$scope.display = function(name) {
       alert(name); // i want to get the selected value and the optgroup value
}

DEMO APP

需要输出: 我想显示选择的 optgroup 值,如果我在 Collection 1 下选择 Field1,我需要 Collection1.Field1

【问题讨论】:

  • 你能详细说明这个问题吗?不清楚你需要什么。
  • 干杯然后@abhinsit 正确回答了你的问题
  • 您现在可以检查我的答案吗?

标签: javascript angularjs select ng-options


【解决方案1】:

我已经更新了选项中的值,以保持对组和值的引用。如果组中的值是唯一的,那么我们可以使用一个值对控制器变量中的映射进行分组,并从那里获取任何数据。但是由于相同的值存在于组中,所以我在 opt 值中保留了组的引用并使用了它。

现在选择框中显示的文本是所需的,并且选项的值已更新以保持对组的引用。所以现在两者都可用。

更新的 Plunkr:https://plnkr.co/edit/zvNcdDe0kmMJ1R67hOkK?p=preview

控制器:

var app = angular.module('todoApp', []);

app.controller("dobController", ["$scope", "$http",
  function($scope, $http) {
    $http.get('test.json').then(function(response) {
      $scope.collection = response.data.Collections;
      console.log(response);
    });

    $scope.matches = [];

    $scope.display = function(name) {

       alert("controller:"+name.split("::")[0]+" and value ::"+name.split("::")[1] );
    }

  }
]);

HTML:

<select ng-model='theModel' ng-change="display(theModel)">
    <optgroup ng-repeat='group in collection' label="{{group.Name}}">
    <option ng-repeat='veh in group.Fields' value='{{group.Name}}::{{veh.Name}}'>{{veh.Name}}</option>
    </optgroup>
    </select>

【讨论】:

  • 是的,我在几分钟内相应地更新我的答案有点错误
  • 你能检查一下这是否需要
  • 即使它显示,这不是我需要的,我必须使用相同的字段而不是附加和显示为选项
  • 我也会更新,但现在我的回答至少不值得投反对票,请您更新。
  • @abhinst,兄弟,我没有投反对票,我现在要加票
猜你喜欢
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2015-05-09
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多