Angular 利用路由跳转到指定页面的指定位置方法

 更新时间:2018年08月31日 14:27:40   作者:Tvibe  
今天小编就为大家分享一篇Angular 利用路由跳转到指定页面的指定位置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

之前做过页面内的跳转,比较简单,最近项目需要实现跨页面跳转,并跳转到指定地点,试了很多方法,有用到传递参数然后让页面滚动相应的距离,但是一旦文章长短发生变化,滚动的距离也需要重新计算,比较麻烦,所以最后总结出这两种比较靠谱的方法,只需要在需要跳转的地方加上合适的id就行,原理和单页面内跳转相似。

detail.component.html

<p>You'll see which payment methods are available to you on the checkout page, before you submit a reservation request. After you select your country, all of your payment details will be shown.</p>
<p id="readMore">We charge featured guide who offer journey a 15% service fee. The amount of the service fee is calculated from the price that featured guide set for their journey. You will see the service fee when you set your price before submitting a journey. The service fee is automatically deducted from the payout to the Host.
  

Depending on the laws of the jurisdiction involved, VAT may be charged on top of the service fee. The service fee will include these VAT charges when applicable.</p>

app.component.html

<button (click)="readMore()">ReadMore</button>

app.route.ts

 { path: '',component: LoginComponent},
 { path: 'detail', component: DetailComponent },
 { path: '**',component: NotFoundComponent}

方法一:新增路由地址来实现

app.route.ts

 { path: '',component: LoginComponent},
 { path: 'detail', component: DetailComponent },
 { path: 'detail#readMore',component: NotFoundComponent},
 { path: '**',component: NotFoundComponent}

app.component.ts

readMore() {
this.router.navigateByUrl('/detail#readMore');
 }

detail.component.ts

ngOnInit() {
 if (window.location.hash === '#readMore') {
  window.location.assign('detail#readMore');
 }
 }

方法二:在原路由地址不变的情况下,利用路由传递参数来实现

app.component.ts

readMore() {
 this.router.navigate(['/detail', { id: 'readMore'}]);
 }
detail.component.ts

this.myActivatedRoute.params.subscribe(
  (data: any) => {
  if (data.id === 'readMore') {
   window.location.assign('detail#readMore');
  }
  }
 );

以上这篇Angular 利用路由跳转到指定页面的指定位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • angular报错can't resolve all parameters for []的解决

    angular报错can't resolve all parameters&nb

    这篇文章主要介绍了angular报错can't resolve all parameters for []的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Angularjs实现多图片上传预览功能

    Angularjs实现多图片上传预览功能

    这篇文章主要介绍了Angularjs实现多图片上传预览功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • AngularJS基础 ng-submit 指令简单示例

    AngularJS基础 ng-submit 指令简单示例

    本文主要介绍AngularJS ng-submit 指令,这里对ng-submit 指令的基础资料做了详细介绍整理,并附有代码示例,有需要的小伙伴可以参考下
    2016-08-08
  • AngularJS ngModel实现指令与输入直接的数据通信

    AngularJS ngModel实现指令与输入直接的数据通信

    这篇文章主要介绍了AngularJS ngModel实现指令与输入直接的数据通信的相关资料,需要的朋友可以参考下
    2016-09-09
  • Angular.js 4.x中表单Template-Driven Forms详解

    Angular.js 4.x中表单Template-Driven Forms详解

    Angular 4.x 中有两种表单,一种是Template-Driven Forms - 模板驱动式表单,另外一种是Reactive Forms - 响应式表单 ,下面这篇文章主要给大家介绍了Angular.js 4.x中表单Template-Driven Forms的相关资料,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04
  • 在Angular 中使用 Flex 布局的示例详解

    在Angular 中使用 Flex 布局的示例详解

    在本教程中,您使用 Flex 布局与 Angular 应用程序,它允许您构建一个布局,使用预配置的 Flexbox CSS 样式,而无需额外的样式,对Angular使用 Flex 布局相关知识感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • AngularJs的UI组件ui-Bootstrap之Tooltip和Popover

    AngularJs的UI组件ui-Bootstrap之Tooltip和Popover

    这篇文章主要介绍了AngularJs的UI组件ui-Bootstrap之Tooltip和Popover,tooltip和popover是轻量的、可扩展的、用于提示的指令。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • AngularJS 中ui-view传参的实例详解

    AngularJS 中ui-view传参的实例详解

    这篇文章主要介绍了AngularJS 中ui-view传参的实例详解的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-08-08
  • Angular6中使用Swiper的方法示例

    Angular6中使用Swiper的方法示例

    这篇文章主要介绍了Angular6中使用Swiper的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Angular中ng update命令force参数含义详解

    Angular中ng update命令force参数含义详解

    这篇文章主要为大家介绍了Angular中ng update命令force参数含义详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论