Angular 4.X开发实践中的踩坑小结

Angular 4.X开发实践中的踩坑小结

这篇文章主要给大家介绍了关于Angular 4.X开发实践中的一些踩坑经验,文中主要介绍的是使用ngIf或者ngSwitch出错以及多级依赖注入器的相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。

本文主要给大家分享了关于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:``, 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: `

HOME

`, providers: [LoginService] }) export class MainComponent implements OnInit { private userType: string ; constructor(private loginService: LoginService) { console.log(this.loginService.isLoginIn); //结果为false } }

从上面的例子可以看出来,在不同的地方注入同样的Service,但是会使用不同的实例,所以会导致结果可能不同,需要注意。

总结

以上就是Angular 4.X开发实践中的踩坑小结的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    Lucene学习之高亮显示

    Lucene学习之高亮显示,索引,字符,在搜索引擎中我们经常会看到这样的情景: 红色部分我们称之为高亮显示,lucene提供了HighLighter模块来实

    2010年底DIY硬件总结和安装参考

    2010年底DIY硬件总结和安装参考,,它似乎只是一眨眼的功夫从过去的最后一眼。看看现在的岗位似乎就在昨天,但看看当年的内容是真的走了,如果

    虾类安装经验分享!

    虾类安装经验分享!,,虾类安装经验分享: 1,机箱的电源光盘应该接近代理价格,而内存和硬盘的价格是在互联网上找到的即时价格。主板套件,视频卡

    新手如何学习计算机知识(快速入门)

    新手如何学习计算机知识(快速入门),,作为一个初学者,因为我忙于工作和家庭的原因,我没有太多的时间去计算机培训班,但我想熟悉计算机操作和计算

    学习游戏两宜3000元菜鸟超频主机

    学习游戏两宜3000元菜鸟超频主机,,在英特尔中的主流新产品的推出,旧产品将面临洗牌。目前,奔腾双核E2180处理器的价格已经降至430元,而奔腾e2