> 웹 프론트엔드 > JS 튜토리얼 > Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석

Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석

青灯夜游
풀어 주다: 2023-01-14 19:17:03
앞으로
2379명이 탐색했습니다.

Angular 지시어는 컴포넌트(템플릿 지시어 사용), 구조적 지시어(호스트 문서 구조 변경), 속성 지시어(호스트 동작 변경)의 세 가지 유형으로 구분됩니다. 다음은 주로 사용자 정의 구조 지시어와 사용자 정의 속성 지시어를 소개합니다.

Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석

1. 사용자 정의 구조 지시문

구조 지시문의 작성 형식은 다음과 같이 *명령 이름이고 *는 구문 설탕입니다. code:

<div *ngIf=""></div>
<!-- 等价于 -->
<ng-template [ngIf]="">
  <div></div>
</ng-template>
로그인 후 복사

다음은 사용자 정의된 구조 명령어입니다. superadmin과 admin이 명령어에 입력되면 DOM 노드가 표시되고, 그렇지 않으면 노드가 제거됩니다. [관련 튜토리얼 권장 사항: "angular 튜토리얼"]

@Directive({
  selector: &#39;[appLogin]&#39;
})
export class LoginDirective implements OnInit{
  @Input(&#39;appLogin&#39;) user=""
  constructor(private VCR: ViewContainerRef,private TPL: TemplateRef<any>) { 
  //在指令的构造函数中将 TemplateRef 和 ViewContainerRef 注入成私有变量。
  }
  ngOnInit(){
    if(this.user==&#39;superadmin&#39;||this.user=="admin"){
      this.VCR.createEmbeddedView(this.TPL)
    }else{
      this.VCR.clear()
    }
  }
}
로그인 후 복사
<div *appLogin="&#39;superadmin&#39;">超级管理员</div>
<div *appLogin="&#39;admin&#39;">管理员</div>
<div *appLogin="&#39;user&#39;">普通会员</div>
로그인 후 복사

효과:
Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석
2. 사용자 정의 속성 지시어

속성 지시어를 사용하면 DOM 요소 및 Angular 구성 요소의 모양이나 동작을 변경할 수 있습니다.

1. @angular/core에서 ElementRef를 가져옵니다. ElementRef의 NativeElement 속성은 호스트 DOM 요소에 대한 직접 액세스를 제공합니다.

2. 지시문의 생성자()에 ElementRef를 추가하여 appColor의 대상인 호스트 DOM 요소에 대한 참조를 삽입합니다.

3. ColorDirective 클래스에 로직을 추가하세요. 다양한 입력 조건에서 배경이 각각 빨간색, 녹색, 파란색으로 표시됩니다.

@Directive({
  selector: &#39;[appColor]&#39;
})
export class ColorDirective implements OnInit{
  @Input() appColor=""
  constructor(private ele:ElementRef) { 
    
  }
  ngOnInit(){
    if (this.appColor == &#39;superadmin&#39;){
      this.ele.nativeElement.style.backgroundColor="red"
    } else if (this.appColor == &#39;admin&#39;) {
      this.ele.nativeElement.style.backgroundColor = "green"
    }else{
      this.ele.nativeElement.style.backgroundColor = "blue"
    }
  }
}
로그인 후 복사
<div [appColor]="&#39;superadmin&#39;">超级管理员</div>
<div [appColor]="&#39;admin&#39;">管理员</div>
<div [appColor]="&#39;user&#39;">普通会员</div>**
로그인 후 복사

효과:

Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석

더 많은 프로그래밍 관련 지식을 보려면 다음을 방문하세요. 프로그래밍 영상! !

위 내용은 Angular의 사용자 정의 구조/속성 지시문에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿