利用angular4和nodejs-express构建一个简单的网站(十)—好友模块

news/2024/4/27 21:35:01/文章来源:https://blog.csdn.net/weixin_34106122/article/details/88854975

上一章讲解了用户登录的相关代码。用户登录成功后,就会进入好友模块,在好友模块中会根据不同的用户ID显示相应的好友列表,点击好友列表中的单个好友就会进入编辑单个好友页面,对好友信息进行编辑。点击列表页面的添加按钮,就会添加新的好友。
我们从这一章开始分析这个好友模块。

模块代码分析

模块基本代码如下:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule } from '@angular/forms';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { BirthdaysComponent } from './birthdays/birthdays.component';
import { BirthdayListComponent } from './birthday-list/birthday-list.component';
import { BirthdayRoutingModule } from './birthday-routing.module';
import { BirthdayService } from './birthday.service';
import { BirthdayDetailComponent } from './birthday-detail/birthday-detail.component';
import { AuthGuardService } from '../auth-guard.service';
import { AuthInterceptor } from '../auth-interceptor';
@NgModule({imports: [CommonModule,ReactiveFormsModule,BirthdayRoutingModule],providers:[BirthdayService,AuthGuardService,{provide: HTTP_INTERCEPTORS,useClass: AuthInterceptor,multi:true}],declarations: [BirthdaysComponent, BirthdayListComponent, BirthdayDetailComponent]
})
export class BirthdaysModule { }

在模块代码中除了作为子模块必须的导入的CommonModule模块,还导入了ReactiveFormsModule,BirthdayRoutingModule两个模块,ReactiveFormsModule模块用于编辑用户信息的提交表单,基本用法和用户注册的表单相同,BirthdayRoutingModule模块用于设置路由。
在providers中提供了BirthdayService、AuthGuardService和一个HTTP请求拦截器,分别用于提供数据服务、路由守卫服务和HTTP拦截服务。
在这个模块下共有三个组件:BirthdaysComponent、BirthdayListComponent、BirthdayDetailComponent。
下面开始逐项进行分析。

路由

路由模块BirthdayRoutingModule负责整个Birthdays模块的全部路由。代码如下:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { BirthdaysComponent } from './birthdays/birthdays.component';
import { BirthdayListComponent } from './birthday-list/birthday-list.component';
import { AuthGuardService } from '../auth-guard.service';
import { BirthdayDetailComponent } from './birthday-detail/birthday-detail.component';
const birthRoutes: Routes = [{path: 'birthday',component: BirthdaysComponent,canActivate: [AuthGuardService],children: [{ path: '', component: BirthdayListComponent },{path: ':id',component: BirthdayDetailComponent},{path:'new',component:BirthdayDetailComponent}]},
];
@NgModule({imports: [RouterModule.forChild(birthRoutes)],exports: [RouterModule]
})
export class BirthdayRoutingModule {}

当地址导航到localhost:4200/birthday时,首先加载BirthdaysComponent控件,BirthdaysComponent控件只要提供一个路由插座和用户的注销操作。
BirthdaysComponent代码比较简单:在这里直接给出html代码和类代码
html代码:

<button type="button" class="btn btn-secondary logout" (click)="logout()">Logout</button>
<router-outlet></router-outlet>

控件类代码:

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { JumbotronServive, Jumbotron } from '../../jumbotron.service';
import { AuthTokenService } from '../../authtoken.service';
@Component({selector: 'app-birthdays',templateUrl: './birthdays.component.html',styleUrls: ['./birthdays.component.css']
})
export class BirthdaysComponent{constructor(private jumbServ: JumbotronServive,private tokenServ: AuthTokenService,private router: Router) {jumbServ.setJumbotron(new Jumbotron('Friends', '', ''));}logout() {this.tokenServ.setToken(null);this.router.navigate(['/']);}
}

当点击Logout按钮时,执行logout()函数,清空保存在本地的认证信息,并导航到首页。
...
<继续路由分析>
birthday路径下有三个子路由,分别为:"空",对应BirthdayListComponent组件。":id"和"new",对应同一个BirthdayDetailComponent组件,当导航到"new"路径时,[routerLink]="[0]",":id"的routerLink为具体的id。
这一篇先暂时写这么多,下一篇主要介绍三个主要的服务提供程序。敬请期待......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_764063.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用tomcat部署和花生壳内网映射进行远程访问自己电脑上的网站

第一步&#xff1a;将编写好的html页面放在tomcat安装目录Tomcat 6.0\webapps\下[新建个目录如&#xff1a;myhtml]里面。 第二步&#xff1a;在tomcat安装目录[Tomcat 6.0\conf\]下用记事本/其他文本软件打开server.xml文件&#xff0c; 文件末尾</Host>前添加 <Cont…

Python爬虫(三)Beautiful Soup 实战,爬取前程无忧网站

Beautiful Soup介绍 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。Beautiful Soup自动将输入文档转换为Unicode编码&#xff0c;输出文档转换为utf-8编码。Beautiful Soup已成为和lxml、html5lib一样出色的python解释器&#xff0c;为…

ASP.NET MVC5 网站开发实践 - 概述

原文地址为&#xff1a; ASP.NET MVC5 网站开发实践 - 概述前段时间一直在用MVC4写个网站开发的demo&#xff0c;由于刚开始学所有的代码都写在一个项目中&#xff0c;越写越混乱&#xff0c;到后来有些代码自己都理不清了。1月26日晚上在群里跟怒放 他们讨论这个问题&#xff…

SQL学习总结以及学习网站

在寒假期间&#xff0c;也趁着大学最后一段美好的学习时间&#xff0c;来了解MSSQL&#xff0c;Oracle&#xff0c;MySQL等热门的的数据库开发语言&#xff0c;感觉很美妙&#xff08;目前的基础操作部分&#xff0c;挺容易上手的&#xff09; 首先在开始接触SQL Server 时&am…

拜访Go语言中文网站长

大家好&#xff0c;我是飞哥&#xff01;过去的这一年多里&#xff0c;我除了工作以外的主要精力大都放在写公众号里的技术文上了。 不过随着公众号的进步&#xff0c;越来越意识到不应该只顾低头写文章&#xff0c;而是应该抬头看看优秀的人都在做啥。说来也巧&#xff0c;互联…

ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销

原文地址为&#xff1a; ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分&#xff08;2&#xff09;用户登录、注销上次实现了用户注册&#xff0c;这次来实现用户登录&#xff0c;用到IAuthenticationManager的SignOut、SignIn方法和基于声明的标识。最后修改用户注册代…

学用MVC4做网站一:用户登陆1.2

原文地址为&#xff1a; 学用MVC4做网站一:用户登陆1.2一用户 1.1用户注册 1.2用户登陆 首先在Models里添加用户登陆模型类UserLogin&#xff0c;该类只要用用户名&#xff0c;密码和验证码三个字段。 /// <summary>/// 用户登陆模型/// </summary>public class…

提升你网站水平的 jQuery 插件推荐

原文地址为&#xff1a; 提升你网站水平的 jQuery 插件推荐jQuery是一个优秀JavaScript库&#xff0c;它简化了HTML文档遍历&#xff0c;事件处理&#xff0c;动画和Ajax交互。 jQuery的确改变了很多人写JavaScript的方式。如今&#xff0c;有很多现成的jQuery插件可供选择&…

使用C#实现网站用户登录

原文地址为&#xff1a; 使用C#实现网站用户登录我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉&#xff1f;要实现用户的登录&#xff0c;那么首先就必须要了解一般网站中是怎么判断用户是否登录的…

轻量服务器如何退款_wordpress程序搭建网站教程,新手小白如何搭建个人博客?...

导读&#xff1a;最近很多同学在问wordpress搭建教程因为很多的人都不会操作&#xff0c;只有学习过老课程的同学才知道&#xff0c;那么我就出一个详细的教程。(文/王听风)一.购买服务器这里我就以阿里云为列子&#xff1a;1.打开网址(https://www.aliyun.com/product/ecs)云服…

python面试题网站有哪些_扣丁学堂解析Python爬虫工程师面试题汇总

扣丁学堂解析Python爬虫工程师面试题汇总 2018-08-20 11:24:39 1664浏览 今天&#xff0c;扣丁学堂的小编来给大家总结一下Python爬虫的面试技巧&#xff0c;希望给参加Python培训的同学一点儿帮助。1、对__if__name__main的理解陈述 __name__是当前模块名&#xff0c;当模块被…

火狐(Firefox)如何移除add security exception添加的网站

如图&#xff0c;我浏览某些网站时弹出来如下框&#xff0c;为了浏览网页&#xff0c;我点了add exception—confirm security exception。现在我想移除&#xff0c;该如何操作&#xff1f; About Me ..................................................................…

web应用程序和web网站_使用推荐引擎个性化您的Web应用程序

web应用程序和web网站为了在快速发展的全球行业中保持相关性&#xff0c;技术专业人员必须跟踪IT的重大趋势&#xff0c;并找到方法将重要的趋势纳入其公司的技术产品组合中。 这样的趋势之一就是使用推荐引擎来驱动用户探索您的网站或企业的其他产品。 这些引擎根据各种模式向…

推荐16个国外的源码下载网站

本文转载自&#xff1a; https://www.cnblogs.com/lhb25/archive/2011/04/20/2013129.html 作者&#xff1a;lhb25 转载请注明该声明。如今&#xff0c;网上有很多的源代码下载网站&#xff0c;分析和学习别人的代码也是提高自己编程能力的方法之一。今天本文向大家推荐16个国…

网站建设过程中的:重要页面、关键页面、过程页面、结果页面

网站的页面类型和等级可做归类。 有些是“重要页面”&#xff0c;有些是“关键页面”&#xff0c;有些是“过程页面”&#xff0c;有些是“结果页面”。 这些根据页面存在的目的和作用分门别类。 “重要页面”和“关键页面”等级高于“过程页面”和“结果页面” 用户行为分析这…

大型网站服务器架构

QQ游戏于前几日终于突破了百万人同时在线的关口&#xff0c;向着更为远大的目标迈进&#xff0c;这让其它众多传统的棋牌休闲游戏平台黯然失色&#xff0c;相比之下&#xff0c;联众似乎已经根本不是QQ的对手&#xff0c;因为QQ除了这100万的游戏在线人数外&#xff0c;它还拥有…

大型网站系统架构分析

千万级的注册用户&#xff0c;千万级的帖子&#xff0c;nTB级的附件&#xff0c;还有巨大的日访问量&#xff0c;大型网站采用什么系统架构保证性能和稳定性&#xff1f; 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理&#xff1a;负载量不大的情况下selec…

(转)网站加速--动态应用篇 (上)

--提升性能的同时为你节约10倍以上成本From: http://blog.sina.com.cn/iyangjian一, 引子二&#xff0c;总体结构图三&#xff0c;系统结构综述四&#xff0c;环境配置以及底层基础类库五, Memcache & Mysql 常用场景案例六&#xff0c;更多待续 ......-------------------…

宝塔如何备份网站_如何使用宝塔面板创建定时任务?

大家在使用宝塔面板时都可能会遇到需要使用定时任务的功能,在其进行操作网站程式时,例如文件备份、木马查杀&#xff0c;释放内存等都会用到定时任务&#xff0c;而用好定时任务功能可以使你工作效率事半功倍。而今天要教给大家的就是如何在SugarHosts云服务器上使用宝塔面板创…

网站 服务器 和 空间大小,网站服务器和空间大小

网站服务器和空间大小 内容精选换一换问题现象下载云主机文件到主机网盘&#xff0c;即下载文件到用户个人主机网盘时&#xff0c;提示下载失败错误。上传文件失败&#xff0c;提示/3.0/h5FileService/upload-403&#xff1a;服务错误&#xff0c;请稍后重试。从本地上传文件到…