2015-01-12 2 views
2

이 간단한 테스트 설정은 매개 변수 parA 인 경로 A과 매개 변수 parB 인 서브 루트 B입니다. 내가 /#/A/1234/B/5678에 갈 때Angular Dart의 계층 적 경로 매개 변수

'A' : ngRoute 
    (
     path : '/A/:parA', 
     enter: (RouteEnterEvent e) 
     { 
      print ('ENTERED A'); 
      e.parameters.keys.forEach(print); 
     }, 
     mount: 
     { 
      'B' : ngRoute 
      (
       path: '/B/:parB', 
       enter: (RouteEnterEvent e) 
       { 
        print ('ENTERED B'); 
        e.parameters.keys.forEach(print); 
       } 
      ) 
     } 
    ) 

내가 대신 내가 구성 요소가 그 생성자가 B에서 만든 의미

Entered A 
parA 
Entered B 
parB 

얻을

Entered B 
parA 
parB 

을받을 것으로 예상 거라고 RouteProvider 수 없어 매개 변수 parA에 액세스하십시오.

답변

1

이 문제와 관련이있는 것으로 보입니다. https://github.com/angular/route.dart/issues/85. 거기에 나열된 해결 방법이 유용 할 수도 있습니다. 문제에서 복사

:

는 현재 해결 방법으로 나는 모든 부모 경로를 통과하고 RouteEvent에 추가 도우미 메서드가 있습니다.

/// Adds the parameters of all parent routes to [e]. 
RouteEvent _addParentParams(RouteEvent e) { 

    // Function to recursively get the parents. 
    Function recursiveAddParentParams; 
    recursiveAddParentParams = (Route route) { 
    // Set the parent parameters to the event. 
    e.parameters.addAll(route.parameters); 

    if (route.parent != null) { 
     recursiveAddParentParams(route.parent); 
    } 
    }; 

    recursiveAddParentParams(e.route.parent); 

    return e; 
}