以下は、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値を変更することができないことを除いて、すべて正常に動作します。
お手数ですが、よろしくお願いいたします。
子ステート$ state.go( 'childstate'、{"Id":新しい値}、 'reload:childstate')にナビゲートするときにparamsを更新して動作させました。 – almighty