Ich möchte eine TypeScript-Klasse schreiben, die einen "Präfix" -Parameter im Konstruktor erhält, diese Klasse benötigt auch Zugriff auf einen LogService inject.Wie kann ich eine AngularJS-Factory mit TypeScript-Klasse definieren, die Konstruktorparameter hat
Ebene JavaScript verwenden, sollten Sie es wie folgt tun:
angular.module('myModule', []).factory('LogWithPrefixFactory', ['LogService', function(LogService) {
var LogWithPrefixFactory = function(prefix) {
this.prefix = prefix;
}
LogWithPrefixFactory.prototype.log = function(txt) {
// we have access to the injected LogService
LogService.log(this.prefix, txt);
}
return LogWithPrefixFactory;
}]);
Also, wenn Sie diese Fabrik an einen Controller injizieren, können Sie es oft wie diese auslösen kann (keine Notwendigkeit, die LogService zu injizieren):
Wie würden Sie diese Factory in einer TypeScript-Klasse definieren? TypeScript-Klassen können nicht innerhalb von Funktionen definiert werden ... Diese Klasse sollte Zugriff auf den LogService haben, aber sie kann ihn nicht in einer der injects bekommen.
Verwandtes Thema: http://stackoverflow.com/questions/24620275 –