In Angular habe ich ein Objekt im Gültigkeitsbereich, das viele Objekte zurückgibt. Jeder hat eine ID (diese ist in einer Flatfile gespeichert, also keine DB, und ich scheine nicht in der Lage zu sein, Benutzer ng-resource
)
In meinem Controller:
$scope.fish = [
{category:'freshwater', id:'1', name: 'trout', more:'false'},
{category:'freshwater', id:'2', name:'bass', more:'false'}
];
Meiner Ansicht nach habe ich zusätzliche Informationen zu den Fischen, die standardmäßig mit ng-show
mehr ausgeblendet sind. Wenn ich jedoch auf die einfache Registerkarte Mehr anzeigen klicke, möchte ich die Funktion aufrufen showdetails(fish.fish_id)
. Meine Funktion würde ungefähr so aussehen:
$scope.showdetails = function(fish_id) {
var fish = $scope.fish.get({id: fish_id});
fish.more = true;
}
In der Ansicht werden nun die weiteren Details angezeigt. Nach dem Durchsuchen der Dokumentation kann ich jedoch nicht herausfinden, wie dieses fish
Array durchsucht werden soll .
Wie frage ich das Array ab? Und wie rufe ich in der Konsole den Debugger auf, damit ich das $scope
Objekt zum Spielen habe?
quelle
Sie können den vorhandenen $ filter-Dienst verwenden. Ich habe die Geige über http://jsfiddle.net/gbW8Z/12/ aktualisiert.
Die eckige Dokumentation finden Sie hier http://docs.angularjs.org/api/ng.filter:filter
quelle
$scope.selected
ist / enthält. Durch eine Schnellsuche nach ausgewählten habe ichng-selected
/ ngSelected gefunden :If the expression is truthy, then special attribute "selected" will be set on the element
. Ist das das gleiche? Was macht es in Ihrem Beispiel? DankeUm @ migontechs Antwort und auch seiner Adresse seinen Kommentar hinzuzufügen, dass Sie es "wahrscheinlich allgemeiner machen könnten", ist hier eine Möglichkeit, dies zu tun. Im Folgenden können Sie nach jeder Eigenschaft suchen:
Der Aufruf zum Filtern würde dann werden:
Beachten Sie, dass ich den unären (+) Operator entfernt habe, um stringbasierte Übereinstimmungen zu ermöglichen ...
quelle
Eine schmutzige und einfache Lösung könnte aussehen
quelle
Angularjs verfügt bereits über die Filteroption https://docs.angularjs.org/api/ng/filter/filter
quelle
Ihre Lösungen sind korrekt, aber unnötig kompliziert. Sie können die reine Javascript-Filterfunktion verwenden . Das ist dein Modell:
Und das ist deine Funktion:
Sie können auch den Ausdruck verwenden:
Mehr zu dieser Funktion: LINK
quelle
Ich habe diesen Thread gesehen, wollte aber nach IDs suchen, die nicht zu meiner Suche passen. Code dafür:
quelle