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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
优秀js开源框架-jQuery使用手册(1)
Mar 10 Javascript
不用MOUSEMOVE也能滑动啊
May 23 Javascript
js下判断 iframe 是否加载完成的完美方法
Oct 26 Javascript
javascript 正则表达式相关应介绍
Nov 27 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
jquery实现的缩略图预览滑块实例
Jun 25 Javascript
jquery计算鼠标和指定元素之间距离的方法
Jun 26 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
基于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中call_user_func_array的作用
2013/06/07 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
JS实现一键回顶功能示例代码
2013/10/28 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
jQuery实现轮播图效果demo
2020/01/11 jQuery
详解javascript void(0)
2020/07/13 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
浅谈django 重载str 方法
2020/05/19 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
Python csv文件记录流程代码解析
2020/07/16 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
毕业生求职简历中的自我评价
2013/10/18 职场文书
教师实习自我鉴定
2013/12/13 职场文书
活动策划邀请函
2014/02/06 职场文书
精彩的广告词
2014/03/19 职场文书
销售代理协议书
2014/09/30 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
大一新生检讨书
2014/10/29 职场文书
实习单位鉴定意见
2015/06/04 职场文书
院系推荐意见
2015/06/05 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
PHP获取学生成绩的方法
2021/11/17 PHP
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS