1

我有一个ID数组,我需要使用这个数组作为我的ng选项指令的源内选择。我当然可以在我的集合中找到具有相应id的对象,并创建一个使用它的对象数组而不是id数组,但我不知道是否有办法以某种方式动态地实现它?像设置一个函数作为ng-option的源码?如何将ids转换为ng-option角中的对象?

+0

是的,这是可能避免的对象中间阵列。 – dfsq

+0

@dfsq那是怎么回事? – dKab

+0

在过滤器的帮助下。我可以发布元示例,或者我可以在您的代码上创建演示,如果您提交了代码。 – dfsq

回答

1

您可以通过滤波的帮助下通过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>