Ich habe ein Problem, wenn ich versuche, einige Daten in der Funktion von WebTorrent zu protokollieren.
Ich möchte einige Werte von this.client.add protokollieren, aber ich habe keinen Zugriff.
Eine Idee, was hier vor sich geht?
import Webtorrent from 'webtorrent';
class PlaylistController {
/** @ngInject */
constructor($http, $log) {
this.log = $log;
this.client = new Webtorrent();
$http
.get('app/playlist/playlist.json')
.then(response => {
this.Torrent = response.data;
});
}
addTorrent(magnetUri) {
this.log.log(magnetUri);
this.client.add(magnetUri, function (torrent) {
// Got torrent metadata!
this.log.log('Client is downloading:', torrent.infoHash);
torrent.files.forEach(file => {
this.log(file);
});
});
this.log.log('sda');
this.log.log(this.client);
}
}
export const playlist = {
templateUrl: "app/playlist/playlist.html",
controller: PlaylistController,
bindings: {
playlist: '<'
}
};
Eine andere Sache sein I Yeoman für das Gerüst meiner app und seine hat JSLint mit console.log verboten und dessen gesagt, dass Sie Winkel verwenden müssen. $ Log, aber das, was seine I Ich will das nicht ändern, ich möchte das Problem hier verstehen.
add '/ * eslint no-Konsole: [ "Fehler", { allow: ["warn", "error"]}] */'in der ersten Zeile der JS-Datei, um die' console.log() 'Warnung zu entfernen. [Referenz] (http://eslint.org/docs/rules/no-console) –
Ja, das ist eine andere Lösung, aber ich möchte verstehen, warum ich $ log in der Funktion nicht verwenden kann. – Merlyn007
Sie verwenden 'this' innerhalb der Funktion (torrent) {...}, die sich auf diese Funktion bezieht und nicht auf die Klasse (auf die Sie sich beziehen wollen). In reinem ES6 könnten Sie anstelle eines normalen Pfeils eine Pfeilfunktion verwenden, so dass diese Referenz die äußere bleibt. – DiegoRBaquero