Фильтрация списка FireBase другим объектом FireBase в Angularjs

StackOverflow https://stackoverflow.com//questions/23050002

  •  21-12-2019
  •  | 
  •  

Вопрос

Поэтому у меня есть большой список FireBase, который я хочу отфильтровать, используя другой объект FireBase, с которым я связываюсь.Если я не связываю свой объект «поиска», чтобы FireBase его фильтрует, но когда я связываюсь с Firebase, он возвращает нулевые результаты.

<Сильный> Мой контроллер:

  .controller('TestResultsCtrl', ['$scope', 'syncData', '$routeParams', '$firebase', '$filter', function($scope, syncData, $routeParams, $firebase, $filter) {
      $scope.id = $routeParams.id;
      syncData('tests/' + $routeParams.id).$bind($scope, 'test');
      syncData('tests/' + $routeParams.id + '/specs').$bind($scope, 'search');
      syncData('diagnoses').$bind($scope, 'all_diagnoses');
   }])
.

Мой вид:

<a href="" ng-repeat="diagnoses in all_diagnoses | orderByPriority | filter:search" class="list-group-item">{{diagnoses.title}}</a>
.

Образец «поиск» объект:

{
  "constant": true,
  "intermittent": true,
  "localized": true,
  "referred": false,
  "region": "hip"
}
.

Образец объекта / списка / списка Firebase "диагностики":

{
  "constant": true,
  "intermittent": true,
  "localized": true,
  "referred": false,
  "region": "hip",
  "title": "Hip Osteoarthritis"
},
{
  "constant": true,
  "intermittent": false,
  "localized": false,
  "referred": true,
  "region": "neck",
  "title": "Whiplash"
}
.

Как я могу правильно фильзать?
... и заранее спасибо!

Это было полезно?

Решение

Проблема, вероятно, заключается в том, что объект, возвращаемый из $ BIND, содержит несколько методов $, которые угловые пытаются фильтровать.

попробуйте что-то вроде этого ...

syncData('tests/' + $routeParams.id + '/specs').$bind($scope, 'searchDirty');
$scope.$watch('searchDirty', function (search) {
    $scope.search = angular.fromJson(angular.toJson(search));
});
.

Это раскроет любые $ методы / значения и возвращает необработанное значение данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top