2016-12-04 15 views
0

以下は、ui-router状態プロバイダーがプロジェクトにどのように設定されているかを示しています。その一部の下に表示します。uiルーターが抽象的な親urlパラメーターを変更する

$stateProvider 
.state('Parent', { 
    url: '/mainpath/:Id', 
    templateUrl: getViewUrl('Main.html'), 
    controller: 'MainController', 
    controllerAs: 'main', 
    abstract: true, 
    resolve: { 

}) 
.state('Parent.Child', { 
    templateUrl: getViewUrl('Child.Html'), 
    controller: 'ChildController', 
    controllerAs: 'child', 
    url: '/child', 
    requireADLogin: true 
}) 
.state('Parent.Child1', { 
    templateUrl: getViewUrl('Child1.Html'), 
    controller: 'Child1Controller', 
    controllerAs: 'child1', 
    url: '/child1', 
    requireADLogin: true 
}) 

.....多くの子供状態。 親パス「/ mainpath /:Id」としてurlが含まれています.Idは親の一部であり、この値に基づいて、親は任意の子状態をロードする前にresolveを実行します(親は抽象であるため、 )。

エンドURLがhttp://something/x.html/mainpath/124353534/child1のように見え、最終的なHTMLが親である上部セクションが含まれており、セクションの下に親HTMLで

<Html> 
<Parent> 
<Child> 
</Child> 
<Parent> 
</Html> 

子を含むパスにIDを変更するには、ドロップダウンリストには "あり/ mainpath /:Id '(これは問題です)、ドロップダウンのこの値はメインコントローラ(親)に取り込まれ、現在の子状態は$ state.goでリロードされます('新しいID原因子値を渡すと子値が変更されますこのIDに基づいて ')。私はURLのID値を変更することができないことを除いて、すべて正常に動作します。

お手数ですが、よろしくお願いいたします。

+0

子ステート$ state.go( 'childstate'、{"Id":新しい値}、 'reload:childstate')にナビゲートするときにparamsを更新して動作させました。 – almighty

答えて

0

IDをサービスに格納し、このサービスを使用するさまざまなコントローラにこのサービスを注入します。

関連する問題