Devo modificare una variabile $scope
all'interno di un filtro. La variabile $scope
viene utilizzata per un attributo ng-show
e le informazioni vengono aggiunte solo nel filtro perché ho un ng-repeat
con alcune informazioni e applicato da alcuni filtri e devo sapere quando i filtri eliminano tutti i miei risultati per mostrare un messaggio ... ecco un esempio: (questa è solo un'idea)
.controller("thing", function() {
$scope.showText = false;
})
.filter("filterText", function() {
return function(information) {
if (information == "") { /* NEED TO CHANGE $scope.showText to true */ }
}
})
HTML:
<div ng-view="showText"> Some Text here </div>
<div ng-repeat="info in information | filterText"></div>
Grazie.
Pensi che un filtro debba accedere a un controller e modificare le informazioni? Perché dovrebbe? Non è un trigger di azione del controller se lo showText dovrebbe cambiare? –
Stai andando nella direzione sbagliata. Sono d'accordo con @PetarMinchev, i filtri non dovrebbero essere interessati o avere accesso a controllori o ambiti. Per definizione, i filtri riguardano solo i dati di input passati potrebbero essere ridotti e niente di più. Con le informazioni limitate fornite su ciò che stai cercando di ottenere, da una prospettiva di alto livello, dovresti utilizzare un legame unidirezionale per monitorare se l'informazione | filterText' è di lunghezza zero. I filtri – tamakisquare
non devono mai alterare i dati che vengono forniti, poiché ciò potrebbe causare più cicli '$ digest' e rallentare le prestazioni. Metti tutto ciò che ti serve in un controller. – g00fy