1
我有一个ID数组,我需要使用这个数组作为我的ng选项指令的源内选择。我当然可以在我的集合中找到具有相应id的对象,并创建一个使用它的对象数组而不是id数组,但我不知道是否有办法以某种方式动态地实现它?像设置一个函数作为ng-option的源码?如何将ids转换为ng-option角中的对象?
我有一个ID数组,我需要使用这个数组作为我的ng选项指令的源内选择。我当然可以在我的集合中找到具有相应id的对象,并创建一个使用它的对象数组而不是id数组,但我不知道是否有办法以某种方式动态地实现它?像设置一个函数作为ng-option的源码?如何将ids转换为ng-option角中的对象?
您可以通过滤波的帮助下通过ID内ngOptions指令表达做到这一点:
angular.module('demo', []).controller('MainCtrl', function($scope) {
$scope.ids = [1, 4];
$scope.objects = [
{id: 1, name: 'One'},
{id: 2, name: 'Two'},
{id: 4, name: 'Four'}
];
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script>
<div ng-app="demo" ng-controller="MainCtrl">
<pre>{{objects}}</pre>
<pre>{{ids}}</pre>
<select ng-model="model"
ng-options="id as (objects | filter:{id: id})[0].name for id in ids">
</select>
{{model}}
</div>
是的,这是可能避免的对象中间阵列。 – dfsq
@dfsq那是怎么回事? – dKab
在过滤器的帮助下。我可以发布元示例,或者我可以在您的代码上创建演示,如果您提交了代码。 – dfsq