如何将 ids 转换为 ng-option angular 中的对象?
How to translate ids to objects in ng-option angular?
我有一个 id 数组,我需要使用这个数组作为我在 select 中的 ng-option 指令的源。我当然可以在我的集合中找到具有相应 id 的对象并创建一个对象数组来使用它而不是 id 数组,但我想知道有没有办法以某种方式动态地做到这一点?就像将函数设置为 ng-option 的源?
您可以借助 ngOptions 指令表达式中的 id 过滤来完成此操作:
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>
我有一个 id 数组,我需要使用这个数组作为我在 select 中的 ng-option 指令的源。我当然可以在我的集合中找到具有相应 id 的对象并创建一个对象数组来使用它而不是 id 数组,但我想知道有没有办法以某种方式动态地做到这一点?就像将函数设置为 ng-option 的源?
您可以借助 ngOptions 指令表达式中的 id 过滤来完成此操作:
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>