国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Angular 4.X開發(fā)實踐中的踩坑小結(jié)

2019-11-19 16:10:57
字體:
供稿:網(wǎng)友

本文主要給大家分享了關(guān)于Angular 4.X開發(fā)中與到的一些踩坑經(jīng)驗,分享出來供大家參考學(xué)習(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中導(dǎo)入CommonModule,雖然你可能在AppModule中導(dǎo)入過了,但是還是需要導(dǎo)入一次,代碼如下:

import { CommonModule } from '@angular/common';@NgModule( {  declarations: [ ],  imports: [   CommonModule  ],  exports: [ ],  providers: [ ] })export class MainModule { }

二、多級依賴注入器

Angular 4.X擁有多級依賴注入系統(tǒng),在一個注入器的范圍內(nèi),依賴都是單例的。它使用冒泡機制,當(dāng)一個組件申請獲得一個依賴時,Angular 先嘗試用該組件自己的注入器來滿足它。 如果該組件的注入器沒有找到對應(yīng)的提供商,它就把這個申請轉(zhuǎn)給它父組件的注入器來處理。 如果那個注入器也無法滿足這個申請,它就繼續(xù)轉(zhuǎn)給它的父組件的注入器。

舉個例子,從登錄頁點擊登錄按鈕進入主頁,LoginComponent和MainComponent都注入了LoginService。

登錄:

//login.service.ts// 這個是登錄服務(wù)import { Injectable } from '@angular/core';@Injectable()export class LoginService { isLoggedIn: boolean = false; login(){  this.isLoggedIn=true; }}
// login.component.ts//登錄界面,只有一個登錄按鈕,點擊后登錄會把LoginService中的isLoggedIn變?yōu)閠rueimport { 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); //結(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: `<h1>HOME</h1>`, providers: [LoginService]})export class MainComponent implements OnInit { private userType: string ; constructor(private loginService: LoginService) { console.log(this.loginService.isLoginIn); //結(jié)果為false }}

從上面的例子可以看出來,在不同的地方注入同樣的Service,但是會使用不同的實例,所以會導(dǎo)致結(jié)果可能不同,需要注意。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安溪县| 桓台县| 澄城县| 揭阳市| 古浪县| 阿克| 南澳县| 江源县| 大兴区| 灵宝市| 建德市| 家居| 皋兰县| 清新县| 化德县| 建德市| 突泉县| 仙居县| 西乌| 唐山市| 喀什市| 温泉县| 新丰县| 彩票| 绵竹市| 勃利县| 博湖县| 高台县| 河间市| 邹平县| 威宁| 精河县| 游戏| 正蓝旗| 吴川市| 靖江市| 南开区| 微山县| 福泉市| 合作市| 海兴县|