如何从ng-repeat中的ui-selection中获取选定的值

时间:2017-02-26 17:10:58

标签: angularjs ui-select

我正在使用ng-repeat添加ui-selection但我不知道如何从控制器中的每个ui-select中获取值。我想在控制器中获取所选项目值,以用作发送$ http请求的参数。

<div ng-repeat="repeat in repeats">
   <p>Selected: {{pattern.selected.name}}</p>
   <ui-select ng-model="repeat.id">
<ui-select-match placeholder="Enter an pattern...">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="pattern in data_pattern_newspapers track by $index">
  <div ng-bind-html="pattern.name | highlight: $select.search"></div>
</ui-select-choices>

我想在我的控制器中做以下事情:

alert($scope.repeat.id.selected)

如何在我的控制器中访问每个ui-select的模型?

plnkr

请一些人帮帮我。谢谢!

1 个答案:

答案 0 :(得分:2)

在你的html中使用ngRepeat的$index属性为每个ui-select创建一个唯一的模型,并将$index传递给ngChange函数:

<ui-select ng-model="selections[$index]" ng-change="selectionChanged($index)">

在你的控制器中初始化一个数组来保存所选的值,并添加接收$index的上述函数来引用这个数组:

$scope.selections = [];

$scope.selectionChanged = function(idx) {
  console.log(idx, $scope.selections[idx]);
};

现在$scope.selections是他们选择的数组。

演示:http://plnkr.co/edit/NSK3UmelATopV0Juw8BV?p=preview