时间:2021-05-28
本文主要给大家分享了关于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变为trueimport { 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,但是会使用不同的实例,所以会导致结果可能不同,需要注意。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、实践踩坑项目使用mpvue开发1.scroll-view默认是不滚动的。。所以要先设置scroll-x="true"或者scroll-y="true"2.在
一、实践踩坑项目使用mpvue开发1.使用flex布局//html大概长这样//css相应就大概长这样.worth-wraper{margin-top:60rp
前段时间,泡面将自己的一个Vue-cli构建的前端框架从webpack3.x升级到了4.x版本,现在才拉出来记录一下,已备忘之用,也和大家分享一下,以免大家采坑
一、在实践中不断提高Improvementinpractice
前期踩的坑(springboot1.x)1.添加mavne依赖?12345org.springframework.bootspring-boot-starter