ng-docs / ng-docs.github.io

Angular 官方文档中文版预编译网站
https://angular.cn
Other
103 stars 22 forks source link

懒加载 skipLocationChange不起作用 #146

Open liaimincq opened 4 years ago

liaimincq commented 4 years ago

使用懒加载 和 skipLocationChange,下面是操作步骤和url的显示值

1.第一次进入网站时,显示首页,首页默认路由为空字符 (url:http://localhost:50137);

2.随机跳转模块(A)下的任何一个路由时,url不会变 (这里不会变可能是首页默认的空字符串,url:http://localhost:50137);

3.再次跳转模块(B)下的任何一个路由时,url会变为上一个模块(A)最后一次跳转的路由的url (url:http://localhost:50137/hrcenter/addemployee);

4.最后跳转到模块(A)的任何一个路由,url不会变 (url:http://localhost:50137/hrcenter/addemployee);

跳转同一个模块内的路由时,url地址不会发生改变 (应该是skipLocationChange的作用);

猜测:可能是模块第一次加载的问题。 结果:希望跳转不同模块的路由时url不会变。

1 2 3 4 5 6

wszgrcy commented 4 years ago

建议提供路由配置(包括组件内Router相关使用代码),另外如果是开源轮子可以发地址我看下

liaimincq commented 4 years ago

ly1 ly2 lu3

wszgrcy commented 4 years ago

那就所有跳转,都带上skipLocationChange就可以了

liaimincq commented 4 years ago

我现在点击菜单跳转都加了skipLocationChange,还要在哪里加呢

wszgrcy commented 4 years ago

https://angular.cn/api/router/RouterLink

liaimincq commented 4 years ago

我用的navigateByUrl; addtag

addtaghtml

wszgrcy commented 4 years ago

我用的navigateByUrl; addtag

addtaghtml

如果你所有的可跳转的代码都在这,写了参数,没有依靠routerLink跳转的话,那么不清楚了, 有可能是nz内部实现的跳转?

liaimincq commented 4 years ago

是不是懒加载第一次加载模块的时候要刷新页面,刷新页面时自动显示了上一次访问的url地址 (这个地址不知道记录在哪里的,能否在显示前手动更改或者需要配置什么参数); routerlinek 怎么使用skipLocationChange呢,我可以试试routerlinek

wszgrcy commented 4 years ago

是不是懒加载第一次加载模块的时候要刷新页面,刷新页面时自动显示了上一次访问的url地址 (这个地址不知道记录在哪里的,能否在显示前手动更改或者需要配置什么参数); routerlinek 怎么使用skipLocationChange呢,我可以试试routerlinek

如果你有用routerLink指令,那么需要加入输入属性skipLocationChange如果你连用都没用,就没这个事了.应该跟懒加载无关,因为你本身地址就没有被记录在案,那么按道理来说刷新应该回首页的 只有一种情况地址会被保留,那就是你知道这个模块怎么进,于是你手动敲上去,然后跳转了,这时因为没走 ng的相关逻辑,所以地址会被保留 但是你说都是通过Router跳转的,相关跳转方法也设置了参数,我就不知道是哪的问题了