Es wurde versucht, der schreibgeschützten Eigenschaft zuzuweisen, obwohl derselbe Befehl anderswo funktioniert.

8

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?

%Vor%     
George Edwards 15.04.2016, 21:56
quelle

1 Antwort

10

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:

%Vor%

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.

    
Nathanael 15.04.2016, 22:19
quelle