本文主要给大家分享了关于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 表单快速入门
# 自己的
# 都是
# 是因为
# 过了
# 在此
# 能在
# 就把
# 给大家
# 你可
# 只有一个
# 可以看出
# 会把
# 这篇文章
# 谢谢大家
# 它就
# 没有找到
# 需要注意
# 中与
# 举个例子
# 错误提示
相关文章:
TestNG的testng.xml配置文件怎么写
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网站制作软件有哪些,制图软件有哪些?
内网网站制作软件,内网的网站如何发布到外网?
建站主机是否属于云主机类型?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何通过服务器快速搭建网站?完整步骤解析
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
,购物网站怎么盈利呢?
建站之星代理商如何保障技术支持与售后服务?
购物网站制作公司有哪些,哪个购物网站比较好?
建站主机是什么?如何选择适合的建站主机?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何登录建站主机?访问步骤全解析
在线教育网站制作平台,山西立德教育官网?
制作网站的模板软件,网站怎么建设?
如何撰写建站申请书?关键要点有哪些?
如何用花生壳三步快速搭建专属网站?
长沙做网站要多少钱,长沙国安网络怎么样?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何快速搭建高效香港服务器网站?
详解jQuery停止动画——stop()方法的使用
网站企业制作流程,用什么语言做企业网站比较好?
制作网站的公司有哪些,做一个公司网站要多少钱?
西安大型网站制作公司,西安招聘网站最好的是哪个?
建站之星伪静态规则如何正确配置?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何自定义建站之星网站的导航菜单样式?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
想学网站制作怎么学,建立一个网站要花费多少?
如何通过虚拟机搭建网站?详细步骤解析
建站主机解析:虚拟主机配置与服务器选择指南
建站org新手必看:2024最新搭建流程与模板选择技巧
浅析上传头像示例及其注意事项
建站之星CMS五站合一模板配置与SEO优化指南
名字制作网站免费,所有小说网站的名字?
临沂网站制作企业,临沂第三中学官方网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
,柠檬视频怎样兑换vip?
,有什么在线背英语单词效率比较高的网站?
建站VPS配置与SEO优化指南:关键词排名提升策略
如何快速搭建高效可靠的建站解决方案?
建站为何优先选择香港服务器?
北京网站制作网页,网站升级改版需要多久?
*请认真填写需求信息,我们会在24小时内与您取得联系。