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 相关文章推荐
css值转换成数值请抛弃parseInt
Oct 24 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
js给selected添加options的方法
May 06 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
Feb 13 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
通过一次报错详细谈谈Point事件
May 17 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 Javascript
js模拟实现烟花特效
Mar 10 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
XML的代替者----JSON
2007/07/21 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
numpy实现RNN原理实现
2021/03/02 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
英语系毕业生自荐信
2013/10/31 职场文书
公司委托书格式范文
2014/04/04 职场文书
学校对教师的评语
2014/04/28 职场文书
2014年个人委托书范本
2014/10/13 职场文书
护士实习自荐信
2015/03/06 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android