Ich habe die folgende Funktion, die Fälle für mich am Front-End sortiert, die auf einem ng-Klick aufgerufen wird. Der Parameter ist eine Zeichenkette, der Parameter 'asc' wird an vm.sortCases für aufsteigende Sortierungen übergeben und für die absteigende Sortierung 'desc'.
vm.sortCases = function (byValue) {
vm.selectedSorting = byValue;
};
Ich habe eine Uhr wie folgt aufgestellt, die vm.selectedSorting Uhren, die einen String enthält:
$scope.$watch('vm.selectedSorting', filterAndSortingSearch);
Rückruf für die Uhr:
function filterAndSortingSearch(newValue, oldValue) {
if (newValue === oldValue) {
return;
}
fetchData();
}
Wenn der Benutzer klickt Bei asc zweimal wird die Uhr nur einmal ausgelöst (das erste Mal), warum ist das so, und wie kann ich den Rückruf der Uhren ausführen, auch wenn die gleiche Zeichenfolge übergeben wird? Ich möchte es so, wenn der Benutzer zweimal klickt und "asc" zweimal passiert, wird die Uhr auch zweimal ausgelöst, was jetzt nicht passiert. Ich habe versucht, als dritter Parameter in der Uhr wahr, aber das hat nicht funktioniert. Ich habe auch versucht, die Zeichenfolge wie folgt konvertieren:
vm.sortCases = function (byValue) {
var objForEqualityComparison = {sortOrder: byValue}
vm.selectedSorting = objForEqualityComparison.sortOrder;
};
Dies ist, was ich am Ende mit gehen. I umgewandelt, um die Zeichenfolge innerhalb eines Objekts zu sein, und das Objekt anstelle des String-Wert beobachtet:
vm.sortCases = function (byValue) {
vm.selectedSorting = {direction: byValue};
};
Gibt es eine Möglichkeit, die Variable jedes Mal, wenn ein Benutzer klickt, als neu zu betrachten? Ich dachte, eine Konvertierung in ein Objekt würde damit umgehen? Aus anderen Gründen kann ich ng-click in diesem Szenario nicht verwenden – devdropper87
Hmm ja, mache etwas wie 'function AlwaysUnique (s) {this.s = s:}' und bei Klick immer auf 'new AlwaysUnique (" asc ")) ', und stellen Sie sicher, dass die Uhr strenge Gleichheit verwendet. Hacky, aber es sollte funktionieren .. – Claudiu
strenge Gleichheit ist über wahr als der dritte Parameter, richtig? – devdropper87