Ich mache eine Drag & Drop-Anwendung und ich habe eine Observable für die Mausposition erstellt, die mein drag-object
neu positioniert.
Mit dieser Implementierung habe ich kein Problem, auf diese Weise zu abonnieren:
%Vor%Ich kann mich jedoch nicht abmelden:
%Vor%oder
%Vor%In beiden Fällen bekomme ich den folgenden Fehlertyp:
TypeError: this.mouseMove $ .unsubscribe ist keine Funktion ...
Ich bin mir nicht sicher, ob dies mit dem mouseMove$
Typ von any
zu tun hat, aber das Festlegen des Typs als Observable
und Observable<MouseEvent>
hat nicht funktioniert. Was verstehe ich hier nicht?
Sie verwenden wahrscheinlich eine neuere Version von RxJS, wo es eine API-Änderung gab, bei der Observable.subscribe
eine Disposable
zurückgibt, von der Sie jetzt .unsubscribe
aufrufen ( dispose
wurde unsubscribe
in RxJS5) . Leider gibt es immer noch viele alte Tutorials und Blogposts, die es "auf die alte Art" machen, was zu dieser Verwirrung führt.
Daher sollte Ihr Code
sein %Vor%und, nachdem du fertig bist
%Vor%Eine vollständige Liste der API-Änderungen von Version 4 bis 5 finden Sie in dieser Datei .
Werfen Sie einen Blick auf brianflove.com .
Wenn Sie mouseMove $: ISubscription setzen, sollten Sie sich um das Problem kümmern.
Tags und Links angular typescript unsubscribe observable