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>