本文主要给大家分享了关于Angular 4.X开发中与到的一些踩坑经验,分享出来供大家参考学习,下面来一起看看详细的介绍:

一、使用ngIf或者ngSwitch出错
在html文件中使用ngIf或者ngSwitch时,会解析出错,错误提示如下:
Error: Template parse errors: Can't bind to 'ngSwitch' since it isn't a known property of 'div'.
这个是因为没有在此Component所在的Module中导入CommonModule,虽然你可能在AppModule中导入过了,但是还是需要导入一次,代码如下:
import { CommonModule } from '@angular/common';
@NgModule(
{
declarations: [ ],
imports: [
CommonModule
],
exports: [ ],
providers: [ ]
}
)
export class MainModule { }
二、多级依赖注入器
Angular 4.X拥有多级依赖注入系统,在一个注入器的范围内,依赖都是单例的。它使用冒泡机制,当一个组件申请获得一个依赖时,Angular 先尝试用该组件自己的注入器来满足它。 如果该组件的注入器没有找到对应的提供商,它就把这个申请转给它父组件的注入器来处理。 如果那个注入器也无法满足这个申请,它就继续转给它的父组件的注入器。
举个例子,从登录页点击登录按钮进入主页,LoginComponent和MainComponent都注入了LoginService。
登录:
//login.service.ts
// 这个是登录服务
import { Injectable } from '@angular/core';
@Injectable()
export class LoginService {
isLoggedIn: boolean = false;
login(){
this.isLoggedIn=true;
}
}
// login.component.ts
//登录界面,只有一个登录按钮,点击后登录会把LoginService中的isLoggedIn变为true
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { LoginService } from '../login/login.service';
@Component({
selector: 'app-login',
template:`<button (click)=login()>Login</button>`,
providers: [LoginService]
})
export class LoginComponent implements OnInit {
constructor(private router: Router, private loginService: LoginService) { }
login() {
this.loginService.login();
console.log(this.loginService.isLoggedIn); //结果为true
this.router.navigate(['/main']);
}
}
// main.component.ts
// 这个是登陆后的主界面
import { Component} from '@angular/core';
import { LoginService } from '../login/login.service';
@Component({
selector: 'app-main',
template: `<h1>HOME</h1>`,
providers: [LoginService]
})
export class MainComponent implements OnInit {
private userType: string ;
constructor(private loginService: LoginService) {
console.log(this.loginService.isLoginIn); //结果为false
}
}
从上面的例子可以看出来,在不同的地方注入同样的Service,但是会使用不同的实例,所以会导致结果可能不同,需要注意。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# angularjs4
# angularjs的坑
# angular遇到的坑
# Angular2平滑升级到Angular4的步骤详解
# Web前端框架Angular4.0.0 正式版发布
# Angular 4.x 路由快速入门学习
# 详解Angular 4.x 动态创建组件
# Angular 4.x 动态创建表单实例
# Angular4 中常用的指令入门总结
# Angular 4 指令快速入门教程
# 详解Angular 4 表单快速入门
# 自己的
# 都是
# 是因为
# 过了
# 在此
# 能在
# 就把
# 给大家
# 你可
# 只有一个
# 可以看出
# 会把
# 这篇文章
# 谢谢大家
# 它就
# 没有找到
# 需要注意
# 中与
# 举个例子
# 错误提示
相关文章:
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
建站主机选购指南与交易推荐:核心配置解析
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
潮流网站制作头像软件下载,适合母子的网名有哪些?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
建站之星好吗?新手能否轻松上手建站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
IOS倒计时设置UIButton标题title的抖动问题
如何用西部建站助手快速创建专业网站?
大连 网站制作,大连天途有线官网?
如何批量查询域名的建站时间记录?
建站上市公司网站建设方案与SEO优化服务定制指南
完全自定义免费建站平台:主题模板在线生成一站式服务
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
高防服务器:AI智能防御DDoS攻击与数据安全保障
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
C#如何序列化对象为XML XmlSerializer用法
如何在阿里云高效完成企业建站全流程?
c# 服务器GC和工作站GC的区别和设置
如何用已有域名快速搭建网站?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何通过建站之星自助学习解决操作问题?
制作销售网站教学视频,销售网站有哪些?
,制作一个手机app网站要多少钱?
如何快速搭建安全的FTP站点?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
建站主机与服务器功能差异如何区分?
建站之星安装模板失败:服务器环境不兼容?
如何挑选优质建站一级代理提升网站排名?
如何快速生成橙子建站落地页链接?
建站VPS配置与SEO优化指南:关键词排名提升策略
大学网站设计制作软件有哪些,如何将网站制作成自己app?
c++怎么用jemalloc c++替换默认内存分配器【性能】
c# 在高并发下使用反射发射(Reflection.Emit)的性能
网站设计制作公司地址,网站建设比较好的公司都有哪些?
股票网站制作软件,网上股票怎么开户?
如何快速生成专业多端适配建站电话?
c++ stringstream用法详解_c++字符串与数字转换利器
建站之星如何取消后台验证码生成?
建站主机如何安装配置?新手必看操作指南
如何通过二级域名建站提升品牌影响力?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何快速搭建FTP站点实现文件共享?
如何快速查询网站的真实建站时间?
*请认真填写需求信息,我们会在24小时内与您取得联系。