這篇文章給大家分享的是有關Angular 4.X開發(fā)實踐中會遇到哪些問題的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務器,站群服務器,服務器托管雅安,海外高防服務器,服務器機柜,動態(tài)撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。一、使用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擁有多級依賴注入系統(tǒng),在一個注入器的范圍內(nèi),依賴都是單例的。它使用冒泡機制,當一個組件申請獲得一個依賴時,Angular 先嘗試用該組件自己的注入器來滿足它。 如果該組件的注入器沒有找到對應的提供商,它就把這個申請轉(zhuǎn)給它父組件的注入器來處理。 如果那個注入器也無法滿足這個申請,它就繼續(xù)轉(zhuǎn)給它的父組件的注入器。
舉個例子,從登錄頁點擊登錄按鈕進入主頁,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變?yōu)閠rue 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); //結(jié)果為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); //結(jié)果為false } }
從上面的例子可以看出來,在不同的地方注入同樣的Service,但是會使用不同的實例,所以會導致結(jié)果可能不同,需要注意。
感謝各位的閱讀!關于“Angular 4.X開發(fā)實踐中會遇到哪些問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。