0
我正在從UI-Router v0.4.x遷移到v1.0,並且遇到問題。考慮下面的一段代碼。AngularJS UI-Router v1.0:在解析期間獲取狀態名稱
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)
}
}
})
})
在新版本中let targetStateName = this.self.name
會失敗,因爲this
現在null
,而在此之前它包含在它過渡到狀態信息。
如何在這段代碼中獲得州名?
我想使用一個$transitions.onBefore
鉤把名字rootScope
,並做類似:
resolveBinding: function($rootScope, DependencyResolver) {
let targetStateName = $rootScope.hackyStateName
return DependencyResolver.doSomeThingsFor(targetStateName)
}
但我覺得這是醜陋的,我錯過了什麼更簡單,更優雅。
正是我在尋找的東西。感謝您指出這一點! –