2017-03-22 3 views
0

UI-Router v0.4.x에서 v1.0으로 이전 중이며 문제가 있습니다. 다음 코드를 고려하십시오. this 지금 null 때문에 그것이로 전환 된 상태에 대한 정보를 포함하기 전에 반면 새 버전 let targetStateName = this.self.name에서 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) 
        } 
       } 
      }) 
    }) 

는 실패합니다.

이 코드 블록에서 어떻게 상태 이름을 얻을 수 있습니까?

내가 같은 rootScope에 이름을 넣어 $transitions.onBefore 후크를 사용하고 일에 대해 생각했다 :

resolveBinding: function($rootScope, DependencyResolver) { 
    let targetStateName = $rootScope.hackyStateName 
    return DependencyResolver.doSomeThingsFor(targetStateName) 
} 

을하지만이 추한 느낌 내가 더 쉽고 더 우아한 뭔가 놓치고있어.

답변

2

당신은 해결 기능에 $transition$를 주입 할 수 있습니다

resolveBinding: function($transition$) { 
    console.log($transition$.to()); 
} 

$transition$ documentation를 참조하십시오.

도움이 되었습니까?

+0

정확히 내가 무엇을 찾고 있었습니까. 이것을 지적 해 주셔서 감사합니다! –