我有一个重复下拉的ng-repeat。持有下拉列表的每个重复div都有一个由控制器生成的唯一ID,我可以参考。
如何为特定下拉列表传回选定的选项?现在,如果选择了一个下拉列表,则所有下拉列表中selectedParameter.name的值都会更改。
<div id="{{ mergeVar.name }}" class="alert {{ selectedParamClass }}" ng-repeat="mergeVar in mergeVars">
<b>merge value: </b> {{mergeVar.name}}
<div class="dropdown pull-right">
<button type="button" class="btn btn-sm btn-control dropdown-toggle" data-toggle="dropdown">
{{selectedParameter.name || 'Match the Paramater'}}
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li ng-repeat="param in availableParams">
<a ng-click="selectParameter(parampass)">{{param.name}}</a>
</li>
</ul>
</div>
</div>
//controller.js
$scope.selectParameter = function(parampass) {
console.log('parameter selected')
$scope.selectedParameter = parampass
$scope.selectedParamClass = 'alert-success'
}
答案 0 :(得分:1)
这样做只会影响对象的一个实例:
$scope.selectParameter = function(parampass) {
console.log('parameter selected')
parampass.selectedParamClass = 'alert-success';
}
您需要将属性添加到实例“row”对象。
您仍然可以存储所选对象:
$scope.selectedParameter = parampass
但根据我在代码中看到的内容,您可能要做的是在为所选对象选择项目时使用ng-class="selectedParamClass"
。