Est*_*ask 13 angular2-routing angular
如手册中所述,router.navigate接受delta,但是手册但是不够具体:
根据提供的命令数组和起点进行导航.如果没有提供起始路线,则导航是绝对的.
...
与navigateByUrl相反,navigation始终采用应用于当前URL的增量.
它只是应用相对URL还是更复杂的东西?那么在绝对导航的情况下,它指的是什么样的三角洲呢?
它只是应用相对URL还是更复杂的东西?
它是根据您通过commands参数提供的部分构建的相对URL,并考虑了您传入的其他参数extras(NavigationExtras对象).
例如,您可以使用relativeTo从活动路径或根路径导航.您可以为导航到的URL(queryParams以及fragment其他内容)设置查询参数或片段,也可以保留当前URL中存在的查询参数(queryParamsHandling在附加内容中).
等等,所以一般来说,它实际上比我们动态构建URL时通过URL导航更复杂.
那么在绝对导航的情况下,它指的是什么样的三角洲呢?
对于相对和绝对导航,它是相同的 - 增量是commands应用于当前路径(相对)的更改集()或将应用程序转移到新状态的根路径(绝对)(仅提供新URL通过navigateByUrl).
在简单的情况下,如果您执行类似的操作this.router.navigate(['/heroes'])实际上与使用它没有什么不同navigateByUrl,但请考虑这些示例(请参阅实际转换的createUrlTreecommands和extras最终的URL):
// create /team/33/(user/11//right:chat)
router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);
// remove the right secondary node
router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);
Run Code Online (Sandbox Code Playgroud)
因此,即使对于绝对导航,该navigate方法也提供了一组动态构建URL的附加工具.你可以这样做navigateByUrl,但你可能会用字符串解析/连接/做其他操作(或者开发类似于什么navigate和createUrlTree提供的自己的工具).
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |