angular6.0使用教程之父组件通过url传递id给子组件的方法


Posted in Javascript onJune 30, 2018

在angular6.0使用教程:angular主从组件章节我们介绍了父组件向子组件传递数据,当时是在同一个页面传递数据的。而本章的angular数据传递将是在不同页面间的传递,即list组件页面向post组件页面传递数据。

第一步:配置post组件的路由:

在上一章angular6.0使用教程:angular6.0的路由使用中我们为angular6.0项目设置了路由,我们只设置了home组件和list组件的路由。我们还要设置post组件的路由,因为post是产品组件,而不同的产品会有不同的id,显示不同的产品内容,所以,我们要为每一个id要设置对应的路由。app-routing.module.ts文件代码如下:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {HomeComponent} from "./home/home.component"; //引入home组件
import {ListComponent} from "./list/list.component";//引入list组件
import {PostComponent} from "./post/post.component";//引入post组件
const routes: Routes = [
 { path:'home', component:HomeComponent },
 { path:'list', component:ListComponent },
 //post组件路由
 { path:'post/:id', component:PostComponent },
 { path:'**', redirectTo:'/home' }
];
@NgModule({
 imports: [RouterModule.forRoot(routes)],
 exports: [RouterModule]
})
export class AppRoutingModule { }

第二步:修改db.service.ts服务代码:

在angular6.0使用教程:创建和使得angular服务章节中,我们能过angular6.0的服务向远程服务器接口请求数据,并在list组件中接收获取到angular请求到的数据。具体,可参阅这一章节。

本章我们要实现的功能是:点击list组件页面上的一个列表链接,就向post组件页面传递一个产品id,post组件会向db.service.ts服务获取这个产品id对应的产品信息。所以,我们要在db.service.ts服务中再添加一个方法——用来向远程服务器请求这个产品id的信息。代码如下:

getPost(id:number):Observable<any>{
 return this.http.get("/api/dream/index.php/home/index/post_detail/id/"+id);
}

第三步:在post.component.ts组件文件中添加获取数据方法:

1:引入db.service.ts服务:

import {DbService} from "../db.service";

2:引入ActivatedRoute模块【当前被激活的路由,即当前post,可以获取当前post的id】:

import {ActivatedRoute} from "@angular/router";

3:在post组件的构造函数中实例化DbService服务和ActivatedRoute模块对象:

constructor(private db:DbService,private route:ActivatedRoute) { }

4:声明一个接收变量:

post:any;

5:添加获取DbService服务数据的方法:

getPost():void{
 var id = +this.route.snapshot.paramMap.get('id'); //获取当前Post的产品id
 this.db.getPost(id).subscribe( //通过db:DbService的getPost()方法获取数据
 data=>{ this.post = data; //把产品全部的信息赋值给post变量 }
 );
}

6:在初始化ngOnInit中调用这个方法:

ngOnInit() {
 this.getPost(); 
}

7:在post.component.html前台代码中调用数据:

<div class="post_detail" *ngIf="post">
 <h1>{{ post.name }}</h1>
 <h3>{{ post.addtime }}</h3> 
 <ul [innerHTML]="post.content"></ul>
</div>

这时,在前台调用可能会有“调用HTML字符串”出现的问题,这个可以参阅angular6.0使用教程:angular如何调用HTML字符串章节。

这样,我们就实现了angular6.0的子组件通过url获取父组件传递过来的id,再通过服务请求远程数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
json 入门基础教程 推荐
Oct 31 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
图片无缝滚动代码(向左/向下/向上)
Apr 10 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
jQuery中:visible选择器用法实例
Dec 30 Javascript
Javascript实现Web颜色值转换
Feb 05 Javascript
jQuery菜单插件用法实例
Jul 25 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
May 08 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 #Javascript
AngularJs分页插件使用详解
Jun 30 #Javascript
ionic grid(栅格)九宫格制作详解
Jun 30 #Javascript
vue检测对象和数组的变化分析
Jun 30 #Javascript
浅析vue.js数组的变异方法
Jun 30 #Javascript
详解vue添加删除元素的方法
Jun 30 #Javascript
vue.js删除列表中的一行
Jun 30 #Javascript
You might like
php随机显示图片的简单示例
2014/02/15 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php实现的双色球算法示例
2017/06/20 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
JavaScript 常用函数
2009/12/30 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python抓取京东商城手机列表url实例代码
2013/12/18 Python
python控制台英汉汉英电子词典
2020/04/23 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
python实现图片文件批量重命名
2020/03/23 Python
python中pika模块问题的深入探究
2018/10/13 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
澳大利亚家具商店:Freedom
2020/12/17 全球购物
六五普法规划实施方案
2014/03/21 职场文书
产品包装策划方案
2014/05/18 职场文书
国际会计专业求职信
2014/08/04 职场文书
课改心得体会范文
2016/01/25 职场文书
导游词之岳阳楼
2019/09/25 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python