Ich migriere von UI-Router v0.4.x zu v1.0 und habe ein Problem. Betrachten Sie das folgende Stück Code.AngularJS UI-Router v1.0: Abrufen des Statusnamens während der Auflösung
myApp
.component('myComponent', {
bindings: {
resolveBinding: '<'
},
controller: class myComponentController {
constructor() {
// ...
}
},
templateUrl: someTemplateUrl
})
.config(($stateProvider) => {
$stateProvider
.state('some-state', {
url: '/some-state',
component: 'myComponent',
resolve: {
resolveBinding: function(DependencyResolver) {
let targetStateName = this.self.name
return DependencyResolver.doSomeThingsFor(targetStateName)
}
}
})
})
In der neuen Version let targetStateName = this.self.name
fehl, weil this
jetzt null
ist, während es vorher Informationen über den Zustand enthielt es wurde übergegangen wird.
Wie kann ich den Statusnamen in diesem Codeblock erhalten?
Ich dachte an einen $transitions.onBefore
Haken mit dem Namen auf rootScope
und etwas zu tun, wie gesagt:
resolveBinding: function($rootScope, DependencyResolver) {
let targetStateName = $rootScope.hackyStateName
return DependencyResolver.doSomeThingsFor(targetStateName)
}
Aber ich fühle, das ist hässlich und ich verpasste einfacher und eleganter auf etwas.
Genau das, was ich gesucht habe. Danke, dass du darauf hingewiesen hast! –