Ich habe gesucht, wie Filter funktioniert in Angularjs und ich habe gesehen, dass wir 2 Sätze Klammern senden müssen.
$filter('number')(number[, fractionSize])
Was bedeutet das und wie gehen wir mit JavaScript damit um?
L105
Ich habe gesucht, wie Filter funktioniert in Angularjs und ich habe gesehen, dass wir 2 Sätze Klammern senden müssen.
$filter('number')(number[, fractionSize])
Was bedeutet das und wie gehen wir mit JavaScript damit um?
Das bedeutet, dass die erste Funktion ($filter
) gibt eine andere Funktion zurück und diese zurückgegebene Funktion wird dann sofort aufgerufen. Zum Beispiel:
function add(x){
return function(y){
return x + y;
};
}
var addTwo = add(2);
addTwo(4) === 6; // true
add(3)(4) === 7; // true
Mit ES6-Pfeilfunktionen könnten Sie es folgendermaßen schreiben: let add = (x) => (y) => x + y;
– Guido
19. November 2015 um 8:14 Uhr
Nennen Sie mich einen Noob, aber nehmen Sie sich bitte die Zeit zu erklären, wie eine Unterfunktion den Wert von halten kann x
– Vikas Bansal
27. März 2016 um 17:38 Uhr
@VikasBansal Jedes Mal, wenn eine Funktion in Javascript aufgerufen wird, wird ein neuer Ausführungskontext erstellt, solange darin ein Verweis auf eine andere Funktion vorhanden ist, bleibt dieser Ausführungskontext im Speicher.
– Paulus
29. März 2016 um 17:17 Uhr
Warum nicht einfach 2 Argumente wie übergeben add(x, y)
? Wo ist der Vorteil, es so zu nennen?
– Piotr Pawlik
22. August 2017 um 8:01 Uhr
Danke für diese Erklärung! Hat mir wirklich geholfen zu verstehen, wie die Passportjs-Authentifizierung funktioniert: passport.authenticate("local")(req, res, function(){
– aufgeräumt
16. November 2017 um 17:34 Uhr
$filter('number')
gibt eine Funktion zurück, die zwei Argumente akzeptiert, wobei das erste erforderlich ist (eine Zahl) und das zweite optional ist (die Bruchgröße).
Es ist möglich, die zurückgegebene Funktion sofort aufzurufen:
$filter('number')('123')
Alternativ können Sie die zurückgegebene Funktion für die zukünftige Verwendung aufbewahren:
var numberFilter = $filter('number');
numberFilter('123')
Das; sieht komplex aus: export const toursListQuery = gql` query ToursListQuery { tours { id name } } `; export default graphql(toursListQuery, { options: { pollInterval: 10000 }, })(ToursList);
– Stackdave
18. Oktober 2017 um 22:41 Uhr
Bryan Oakley
Es ist dasselbe wie dieses:
var func = $filter('number');
func(number[, fractionSize]);
Die $filter()
Funktion gibt einen Zeiger auf eine andere Funktion zurück.
Ömer Ayhan
mit ES6 oder späteren Versionen können Sie es so machen;
const divideBoth = (x) => (y) => {
return x / y;
};
Einer der Gründe, warum dieser Funktionstyp nützlich ist, ist, wenn Sie eine React.js-Komponente haben, die eine Callback-Funktion haben muss, anstatt sie auf Inline-Weise zu tun (was ist ()=>Rückgabewert) können Sie es so machen, wie wir es vorher getan haben. Es wird jedoch nicht empfohlen, Callbacks in Ereignissen zu verwenden, da sie beim ersten Rendern ausgeführt werden, was manchmal zu Problemen führen kann
Persönlich finde ich diese Syntax auch verwirrend / umständlich zu lesen. Sie können jedoch eine einfachere Syntax verwenden, um auf AngularJS-Filter zuzugreifen, wie hier beschrieben: stackoverflow.com/a/14303362/1418796
– pkozlowski.opensource
14. August 2013 um 14:41 Uhr
Ich habe anglejs als Beispiel genommen. Ich wollte wissen, wie ich damit umgehen soll, wenn ich selbst eine Funktion erstelle.
– L105
14. August 2013 um 14:45 Uhr
Eigentlich heißt es “curryen”. eine Programmiertechnik.
– Sajuuk
26. Juli 2018 um 11:52 Uhr