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