Chcę napisać klasę TypeScript, która pobiera parametr "prefix" w konstruktorze, ta klasa również potrzebuje dostępu do iniekcji LogService.Jak zdefiniować fabrykę AngularJS przy użyciu klasy TypeScript, która ma parametry konstruktora?
Korzystanie zwykły JavaScript należy zrobić to tak:
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;
}]);
Więc kiedy wstrzykiwać tej fabryki do kontrolera, można zainicjować wiele razy tak (nie trzeba wstrzyknąć LOGSERVICE):
angular.module('myModule').controller('Ctrl', function(LogWithPrefixFactory) {
var foo = new LogWithPrefixFactory("My PREFIX");
var foo = new LogWithPrefixFactory("My OTHER PREFIX");
}
Jak zdefiniowałbyś tę Fabrykę w klasie TypeScript? Klasy TypeScript nie można zdefiniować w funkcjach ... Ta klasa powinna mieć dostęp do usługi LogService, ale nie może jej pobrać w jednym z iniekcji.
Pokrewne tematy: http://stackoverflow.com/questions/24620275 –