Ich habe eine kleine Web-App, die input
von einem Menschen akzeptiert, um Suchparameter zu erstellen. Ich verwende ng-model-options
, um die ng-change
Funktion zu debugnen, um die Suche auszuführen.DRY up ng-Modell
Ich habe kleine Pfeile neben den Spaltennamen auf dem Tisch, die Benutzer sortieren können (es gibt drei Symbole - up-down
, up
und down
für die sort_field und sort_order angezeigt mit ng-class
); Ich möchte eine Änderung an diesen registrieren und eine Suche nach einer kleinen Verzögerung mit Debounce ausführen. Das Problem ist, ich bin mir nicht sicher, wie ng-model
verwenden, um den bestimmten Parameter an diese Symbole zu binden. Ich möchte nicht, dass jemand auf die Sortiersymbole hämmert und den Server oder den Browser abstürzt.
Was ich lieber tun würde, ist ein Platz auf der Seite, die besagt, das search_param
Objekt zu beobachten und eine Suche 500 Millisekunden nach jeder Änderung auslösen. Auf diese Weise würden alle Eingabefelder oder Sortierungsauswahlen aufgerufen werden, wenn ein Benutzer mit der Bearbeitung fertig ist, was eine Funktion zum Senden dieser Parameter an den Endpunkt auslöst.
Was ist die Strategie in AngularJS, dies zu tun? Im Moment binden alle Eingabefelder ein Feld im search_param
Objekt und haben ng-model-options
, um bei Änderung zu debuggen. Das ist viel wiederholter Code.
Sie die gleiche Funktion für 'ng-change' überall verwenden Sie? In diesem Fall können Sie '$ timeout' verwenden, und wenn in der Warteschlange keine Suche stattfindet, können Sie eine mit' $ timeout' starten. Wenn dies der Fall ist, brechen Sie einfach das $ Timeout ab und starten Sie ein neues. –