2014-08-29 3 views
0

내 경로가 너무과 같다 :AngularJS와 UI 라우터 상태 데이터

... 
.state('some.route', { 
    url: '/some/route', 
    template: 'someTemplate.html', 
    controller: 'SomeCtrl' 
    data: { 
     title: 'Some Title' 
    } 
}) 
... 

모든 경로는 data.title 속성이 있습니다.

은 또한 당신이 상태를 이동하면 지시어가 잘 작동하고 적절한 제목을 결합 그래서

... 
app.directive('titleBar', function($state, $rootScope){ 
    return { 
     restrict: 'AE', 
     replace: true, 
     link: function(scope, element, attrs){ 
      scope.title = $state.current.data.title; // On initial load, find data.title and bind it 
      $rootScope.$on('$stateChangeStart', function(e, toState){ 
       scope.title = toState.data.title; // On state change, bind new data.title 
      } 
     }, 
     template: '<div class="title-bar"> {{ title }} </div>' 
    }; 
}); 

같은 지침이있다.

하지만 완전 새로 고침을 수행 할 때, 내가 새로 고쳐 상태에 대한 올바른 데이터를 반환하지 않는 대신에 그렇게 같은 추상 기본 상태의 일종 반환합니다.

console.log($state.current); 
>>>> OUTPUT 
{ 
    abstract: true, 
    name: "", 
    url: "^", 
    views: null 
} 

어떤 아이디어?

+0

당신이'$ urlRouterProvider.otherwise (someurl) '(foo는', '바') ' –

+0

@AnkitLadhania 그래, 내가'$ urlRouterProvider.when 설정'으로 설정했다 당신은 당신의 when() 내에 거짓말을 할 것입니다. – rcorrie

+0

하고 URL 또는 어떤 .when()가 –

답변

0

그래서 나는 왜 이것이 일어나고 있는지 알아 냈고 여전히 해결책을 찾으려고 노력 중입니다.

지시문은 UI 레이아웃 앞에있는 주 레이아웃에 있습니다. 따라서 페이지를 새로 고침하면 상태가 분명히 루트 상태가되고 뷰가로드 될 때 업데이트됩니다.

해결 방법 업데이트 : 대신 지금 $on('$viewContentLoaded')을 사용하고 $on('$stateChangeStart')를 사용

.

+0

헤이 @RCorrie는 AngularJs에 대한 질문도 있습니다. [질문] (http://stackoverflow.com/questions/25574008/is-not-letting-the-state-to-pass) -to-usernamea-za-z0-93-20-in-angul) –

+0

예, 무슨 질문입니까? – rcorrie

+0

내가 이전에 언급 한 내용과 연결되어 있는지 찾아 냈습니까? –

관련 문제