全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文主要给大家分享了关于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 表单快速入门  # 自己的  # 都是  # 是因为  # 过了  # 在此  # 能在  # 就把  # 给大家  # 你可  # 只有一个  # 可以看出  # 会把  # 这篇文章  # 谢谢大家  # 它就  # 没有找到  # 需要注意  # 中与  # 举个例子  # 错误提示 


相关文章: 教学论文网站制作软件有哪些,写论文用什么软件 ?  网站制作网站,深圳做网站哪家比较好?  如何通过商城自助建站源码实现零基础高效建站?  如何快速搭建响应式可视化网站?  如何用花生壳三步快速搭建专属网站?  建站之星CMS五站合一模板配置与SEO优化指南  建站之星导航菜单设置与功能模块配置全攻略  网页设计网站制作软件,microsoft office哪个可以创建网页?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何用腾讯建站主机快速创建免费网站?  MySQL查询结果复制到新表的方法(更新、插入)  已有域名和空间如何快速搭建网站?  如何续费美橙建站之星域名及服务?  建站之星代理平台如何选择最佳方案?  建站主机核心功能解析:服务器选择与网站搭建流程指南  建站之星展会模版如何一键下载生成?  安云自助建站系统如何快速提升SEO排名?  建站之星安装模板失败:服务器环境不兼容?  如何用狗爹虚拟主机快速搭建网站?  制作销售网站教学视频,销售网站有哪些?  深圳网站制作平台,深圳市做网站好的公司有哪些?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  装修招标网站设计制作流程,装修招标流程?  如何在建站宝盒中设置产品搜索功能?  定制建站流程步骤详解:一站式方案设计与开发指南  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  代购小票制作网站有哪些,购物小票的简要说明?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  制作网站的软件免费下载,免费制作app哪个平台好?  名字制作网站免费,所有小说网站的名字?  Bpmn 2.0的XML文件怎么画流程图  宝塔建站助手安装配置与建站模板使用全流程解析  Python文件管理规范_工程实践说明【指导】  香港网站服务器数量如何影响SEO优化效果?  网站专业制作公司有哪些,做一个公司网站要多少钱?  PHP 500报错的快速解决方法  山东云建站价格为何差异显著?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  制作网站的基本流程,设计网站的软件是什么?  ppt制作免费网站有哪些,ppt模板免费下载网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何快速搭建自助建站会员专属系统?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  大连 网站制作,大连天途有线官网?  山东网站制作公司有哪些,山东大源集团官网?  如何零成本快速生成个人自助网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。