Domanda

Quindi ho un grande elenco di firebase che voglio filtrare usando un altro oggetto Firebase a cui sono vincolante.Se non vincola il mio oggetto "ricerca" per FireBase IT filtri bene, ma quando mi collega a Firebase restituisce i risultati zero.

My Controller:

  .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');
   }])
.

La mia vista:

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

Un campione 'Ricerca' Oggetto:

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

Un campione dell'oggetto / elenco delle "diagnosi" di focase:

{
  "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"
}
.

Come posso ottenere questo per filtrare correttamente?
... e grazie in anticipo!

È stato utile?

Soluzione

Il problema è probabilmente che l'oggetto restituito da $ Leghe contiene diversi $ metodi che angolare sta cercando di filtrare.

Prova qualcosa come questo ...

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

Questo spingerà qualsiasi $ $ Metodi / valori e restituirà il valore grezzo dei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top