Ich habe eine Javascript-Funktion (in einer Angular 2 NativeScript basierten mobilen App), die auf Knopfdruck ausgelöst wird, sollte die Schaltfläche ausblenden und eine Aktivitätsanzeige an ihrer Stelle zeigen, führen Sie einen Bluetooth-Scan, der bei Abschluss wechselt Aus dem Aktivitätsindikator und zeigt die ursprüngliche Schaltfläche.
%Vor% Leider wirft die this.isScanning = false;
-Zeile alle diese Fehler. Was habe ich falsch gemacht?
Das Problem ist, dass wenn Sie das Versprechen eingegeben haben, Sie sich in einem anderen Kontext befinden; Das "Dies" zeigt nicht mehr auf das "Dies", von dem Sie dachten, dass es es getan hat, also müssen Sie das "Dies" in einer anderen Variablen speichern; Manche Leute benutzen "das", "selbst" oder sogar "_this" ...
Also ist die Lösung für dieses Problem:
%Vor% Update für ES6-Methode - Sie können auch ES6-Pfeilfunktionen verwenden =>
Zum Beispiel können Sie die erste Zeile ändern:
Da Sie in diesem Fall eine ES6-Pfeilfunktion verwendet haben, wird this
automatisch vom übergeordneten Bereich übernommen. und dann müssen Sie nicht die self
, _this
oder that
Tricks verwenden.
Ab NativeScript 2.4 wird ES6 sowohl in iOS als auch in Android unterstützt.
Tags und Links javascript angularjs nativescript