火鸡味锅巴 發表於 2021-8-24 15:47:00

angular中路由跳转并传值四种方式

<p>一、路由传值</p>
<div class="postBody">
<div id="cnblogs_post_body" class="blogpost-body blogpost-body-html">
<p>&nbsp; 步骤1 路由传递参数 注意 一定是要传递 索引值 let key = index 这种情况是在浏览器中可以显示对应的参数&nbsp;这种的是问号&nbsp;localhost:8080/news?id=2&amp;name=xiaoming</p>
<div class="cnblogs_code">
<pre>&lt;div class="z-shebei-box1 x-mysh-p"style="width: 100%;" *ngFor='let item of deviceInfo.list ;let key = index;'&gt;
   &lt;a ="['/devicepay']" ="{id:key}"&gt;
         &lt;ul&gt;
         &lt;li&gt;{{item}}&lt;/li&gt;
         &lt;/ul&gt;
   &lt;/a&gt;
&lt;/div&gt; </pre>
</div>
<p>步骤2 接收传过来的参数 注意:接收时通过 queryParams 进行接收</p>
<div class="cnblogs_code">
<pre>首先:引入 import {ActivatedRoute} from '@angular/router'
再:声明:constructor(public route:ActivatedRoute) { }
接收: // 接收传过来的值
    this.route.queryParams.subscribe((res)=&gt;{
      console.log(res)
    })</pre>
</div>
<p>&nbsp;</p>
<p>二、动态路由传值这种情况是在浏览器中可以显示对应的参数&nbsp;这种的是斜杆&nbsp;localhost:8080/news/id=2&amp;name=xiaoming</p>
<p>步骤1 在路由中进行配置</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>{ path: 'devicepay/:id',component:DevicepayComponent},</pre>
</div>
<p>&nbsp;</p>
<p>步骤2 在html界面中进行跳转</p>
<div class="cnblogs_code">
<pre>&lt;div class="z-shebei-box1 x-mysh-p"style="width: 100%;" *ngFor='let item of deviceInfo.list ;let key = index;'&gt;
      &lt;a ="['/devicepay/',key]"&gt;
         &lt;ul&gt;
            &lt;li&gt;{{item}}&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/a&gt;
&lt;/div&gt;</pre>
</div>
<p>&nbsp;</p>
<p>步骤3 在另一界面中接收传过来的参数 注意 :动态路由接收时使用的是 params</p>
<div class="cnblogs_code">
<pre>引入 import {ActivatedRoute} from '@angular/router'
再:声明:constructor(public route:ActivatedRoute) { }
接收: // 接收传过来的值
    this.route.params.subscribe((res)=&gt;{
      console.log(res)
    })</pre>
</div>
<p>&nbsp;</p>
<p>三、动态js进行跳转 主要在方法对象中使用</p>
<p>步骤1 html 中 注意里面传入的key值是 循环中 获取的索引值</p>
<div class="cnblogs_code">
<pre>&lt;button (click)='gotoDevicePay(key)'&gt;跳转到支付界面&lt;/button&gt;</pre>
</div>
<p>步骤2 路由文件中写入的格式如下</p>
<div class="cnblogs_code">
<pre>{ path: 'devicepay',component:DevicepayComponent},</pre>
</div>
<p>&nbsp;</p>
<p>步骤3 js中 进行路由跳转</p>
<div class="cnblogs_code">
<pre>//先引入
import { Router} from '@angular/router'
//再声明
constructor( public router:Router) { }

//定义点击事件
gotoDevicePay(key):void{
    //跳转路径 实现的是动态跳转数据
    this.router.navigate(['/devicepay/'],{queryParams:{id:key}})
}</pre>
</div>
<p>&nbsp;</p>
<p>四、通过get方式可以传入多个参数到下一界面</p>
<p>步骤1 引入 NavigationExtras</p>
<div class="cnblogs_code">
<pre>import { Router ,NavigationExtras} from '@angular/router';</pre>
</div>
<p>&nbsp;</p>
<p>步骤2. 定义一个 goNewsContent 方法执行跳转 , 用 NavigationExtras</p>
<div class="cnblogs_code">
<pre>goNewsContent(){
    let navigationExtras: NavigationExtras = {
    queryParams: { 'session_id': '123' },
    fragment: 'anchor'
    };
    this.router.navigate(['/news'],navigationExtras);
}</pre>
</div>
<p>步骤3. 获取 传过来的值</p>
<div class="cnblogs_code">
<pre>constructor(private route: ActivatedRoute) {
   console.log(this.route.queryParams);
}</pre>
</div>
<p>&nbsp;</p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/magicg/p/15180663.html
頁: [1]
查看完整版本: angular中路由跳转并传值四种方式