を継承していない...
Acess parameters of parent state from child state in stateChangeStart
あなたは$ stateChageStartにtoStateプロパティを注入すると、/マージを継承することになっています親州からのデータ。
残念ながら、これは親が抽象状態の私のアプリでは機能しません。私は私の$ atateChangeStart機能で(toStateプロパティを)CONSOLE.LOG、それはこれを出力し、子ページにアクセスするとここに私のルート
// Settings
.state('wfSettings', {
url: '/settings',
abstract: true,
template: '<ui-view/>',
data:{
customData1: "Hello",
customData2: "World!"
}
})
.state('wfSettings.siteSettings', {
url: "/site-settings",
templateUrl: "/templates/siteSettings.tpl.html",
controller: "SiteSettingsCtrl as siteSettings",
data:{
customData2: "UI-Router!"
}
})
です。
ですから、親からのデータが存在しないことがわかります。
奇妙なことは、上のスクリーンショットでは、Chrome開発ツールが「V」をデータの隣に置いていることがわかります。通常の「オブジェクト」ではなく、親状態。非常に奇妙な行動。
編集:
私はいくつかの進歩を遂げてきました。 ui-routerのバージョン0.2.11と0.2.18の間には違いがあるようです。このスクリーンショットは2行の出力を示しています。最初のものはバージョン0.2.11で計算された$ stateChageStartの子ルートからのデータです。
ライブラリを0.2.18に切り替えると、代わりに2行目が出力されます。
編集2:
私は私が持っているものを知っている、だから、(変更履歴で破壊変化として分類されていない)、この変更
https://github.com/angular-ui/ui-router/commit/c4fec8c7998113902af4152d716c42dada6eb465
にそれを突き止めましたそれを引き起こすが、私はまだこれを修正する方法を知らない。おそらく、私は何とかプロトタイプのチェーンに上がって、これらの値を手動でマージする必要がありますか?それは、JavaScriptのプロトタイプの継承に関する私の知識を少し超えている。