OK, also wollte ich einen Provider haben, die mir erlauben würde, die Referenz für den staatlichen Anbieter zu schließen. Also, ich habe den JS-Code und ich versuche, es auf TS zu migrieren. Das ist, was ich bis jetzt habe, aber aus irgendeinem Grund beschwert es sich immer wieder, dass es keine solche Methode gibt (Eigenschaft 'get' existiert nicht beim Typ 'IReferenceProvider'. Versucht, die Schnittstelle zu 'IReferenceProviderGetterInterface' zu ändern Methode scheint gut zu sein, aber ich verliere die 'injectRef' Methode, die einfach nicht richtig scheint, also glaube ich, dass ich die Schnittstellen an der richtigen Stelle habe). Jeder hatte dieses Problem vorher, es wäre schön, darauf hinzuweisen, was ich falsch mache. Ich habe versucht, das Problem zu googeln, aber alles scheint in Ordnung, so viel ich sagen kann. Wie auch immer, hier sind die Schnipsel:
export interface IReferenceProvider extends angular.IServiceProvider {
injectRef(name: string, ref: angular.ui.IUrlRouterProvider | angular.ui.IStateProvider): void;
}
export interface IReferenceProviderGetterInterface {
get(name: string): angular.ui.IUrlRouterProvider | angular.ui.IStateProvider;
}
class ReferenceProvider implements IReferenceProvider {
private refs: { [key: string]: angular.ui.IUrlRouterProvider | angular.ui.IStateProvider } = {};
$get(): IReferenceProviderGetterInterface {
return {
get: (name: string): angular.ui.IUrlRouterProvider | angular.ui.IStateProvider => {
return this.refs[name];
}
};
}
injectRef(name: string, ref: angular.ui.IUrlRouterProvider | angular.ui.IStateProvider): void {
this.refs[name] = ref;
}
}
angular.module("app")
.provider("refs", ReferenceProvider);
}
und die Art, wie ich dies mit bin ist:
static $inject: Array<string> = ["refs"];
private $stateProvider: angular.ui.IStateProvider;
constructor(refs: IReferenceProvider) {
this.$stateProvider = refs.get("$stateProvider");
...
}
Ich dachte, ich würde das auch ausprobieren, war aber unsicher, da es etwas anderen Code ausgibt, als ursprünglich in JS geschrieben wurde. Ich habe ein paar andere Guides im Internet ausgecheckt und sie wurden so gemacht, wie ich es hatte, aber ich denke, so sollte es jetzt sein? – Meshko
yup, so soll es funktionieren, du könntest stattdessen auch einfach den Provider benutzen: 'refs. $ Get(). Get (" $ stateProvider ");' aber das scheint mir falsch zu sein ... – Nayish
okay ..dank Du knospst! – Meshko