1

ID の配列があり、この配列を select 内の ng-option ディレクティブのソースとして使用する必要があります。コレクション内の対応するIDを持つオブジェクトを見つけて、IDの配列の代わりにそれを使用するオブジェクトの配列を作成することはできますが、どうにかして動的に行う方法はあるのでしょうか? 関数を ng-option のソースとして設定したいですか?

4

1 に答える 1

1

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>

于 2015-09-26T10:09:16.513 に答える