Angular 数组过滤器

Angular array filter

我有这个代码

function GuestWizardController($scope, ApiResourceBed, ApiResourceRoom) {
        $scope.rooms = ApiResourceRoom.query();
        $scope.showBeds = function( roomId ){
            $scope.beds = ApiResourceBed.query();
        };
        var vm = this;
        vm.data = {}
    }

ApiResourceBed 和 ApiResourceRoom 是两个工厂。

我需要一个列出所有房间的 select 元素。到目前为止,还不错。

问题是,当我 select 一个房间时,它会触发 showBeds 函数。 现在,我需要一种方法来过滤床阵列。因此,在第二个 select 元素中,我只能显示与 selected 房间相关联的床。

我对 angular 很陌生。 有什么想法吗?


更新

ApiResourceBed 工厂声明:

.factory('ApiResourceBed', ['APP', '$resource', function( APP, $resource, id ){
    return $resource( APP.API_REST + 'beds/:id');
}])

这是一个旧答案(由我回答),我在其中构建了 2 个自定义过滤器来过滤 select 输入。

另一种解决方案可能是按 selected 房间过滤选项,但这取决于您的房间对象,我们需要更多信息。这可能是一个例子:

<select ng-model="selectedRoom" ng-options="room for room in rooms"></select>

<select ng-model="selectedBed" ng-options="bed for bed in selectedRoom.beds"></select>