在UI-Route中,如何防止父状态破坏嵌套视图?

时间:2013-10-18 14:56:49

标签: angularjs angular-ui

我有一个具有嵌套视图和嵌套状态的父状态。嵌套视图是一个IP列表,对服务器的昂贵调用应该只在第一次加载时发生。单击IP应更新URL并导致traffic.details状态更新但不更新列表。网址应如下所示:/traffic/details?ip=127.0.0.1

父网址为/traffic?ipip可供所有嵌套状态使用。做完之后:

$state.transitionTo("traffic.details", { ip: "127.0.0.1"}); 

两种情况:

  • 它将按预期更新URL,但会破坏并重新创建嵌套视图。

  • 如果preventDefault()中的$scope.$on('$stateChangeStart')处于父状态,则它不会重新加载嵌套视图并重新加载traffic.details状态(预期行为)但它赢了“ t更新网址。

如何更新父状态的URL而不更新其嵌套视图?

1 个答案:

答案 0 :(得分:0)

如果不重新加载所有子项,则无法更新父网址。将一个状态放在父级下面但是在所有子级之上,将其设置为abstract,并将其设置为“?ip”,然后从父状态的URL中删除相同的位。