Angular 템플릿 지시문에 대한 간략한 설명: ng-template 및 ng-container 사용
이 글에서는 Angular 템플릿의 ng-template 및 ng-container 지시어에 대해 간략하게 소개하고, ng-template 및 ng-container 지시어를 사용하는 방법을 소개합니다.
ng-template 지시문 소개
ng-template은 HTML을 렌더링하는 데 사용되는 Angular 구조 지시문입니다. 직접적으로 표시되지는 않습니다. 실제로 Angular는 뷰를 렌더링하기 전에 ng-template과 해당 내용을 주석으로 대체합니다. [관련 튜토리얼 추천: "angular tutorial"]
구조적 지시어를 사용하지 않고 다른 요소를 ng-template으로 감싸면 해당 요소는 보이지 않습니다.
*ngFor 및 *ngIf Angular와 같은 명령은 내부적으로 이러한 속성을 요소로 변환하고 이를 사용하여 호스트 요소를 래핑합니다.
ng-container 지시문 소개
추가 div 생성을 피하기 위해 대신 그룹화 요소인 ng-container를 사용할 수 있지만 Angular는 넣지 않기 때문에 스타일이나 요소 레이아웃을 오염시키지 않습니다. DOM에 들어가세요. ng-container는 Angular 파서가 인식하고 처리하는 구문 요소입니다. 이는 지시문, 구성 요소, 클래스 또는 인터페이스가 아니지만 JavaScript의 if 블록에 있는 중괄호와 비슷합니다.
ng-container 사용법
Usage 1 (가장 기본적인 사용법)
리스트 루프에 작성할 때 완료해야 할 몇 가지 판단이 있습니다. Angular의 구조적 지침이 허용하지 않는다는 것을 알고 있습니다. two 동시에, 이번에 추가 div를 추가하고 싶지 않다면 ng-container
<ul> <ng-container *ngFor="let item of list"> <li *ngIf="item.context">{{item.context}}</li> </ng-container> </ul>
Usage 2(ngSwitch와 함께 사용됨)
<ng-container [ngSwitch]="type"> <ng-container *ngSwitchCase="'title'">标题</ng-container> <ng-container *ngSwitchCase="'text'">内容</ng-container> <ng-container *ngSwitchDefault>其他</ng-container> </ng-container>
물론 ngSwitch도 사용할 수 있습니다. html 태그에 직접 작성하세요.
사용법 3(ng-template과 함께 사용)
템플릿과 함께 사용하여 중복 모듈 콘텐츠를 추출하거나 표시할 템플릿에 매개변수를 전달할 수 있습니다. 예를 들어, 다음 예에서는 A당에는 A당의 이름과 소개가 있고, B당에도 이러한 소개가 있으므로 공동 소개를 통합할 수 있습니다.
<div> <!--甲方--> <div> <div class="left">甲方:</div> <div class="right"> 甲方姓名 <ng-container *ngTemplateOutlet="introduce; context: {data: data.partyA}"></ng-container> <!--也可以写成这种方式--> <!-- <ng-container [ngTemplateOutlet]="introduce" [ngTemplateOutletContext]="{data: data.partyA}"> </ng-container> [ngTemplateOutlet]也可用在ng-template上 --> </div> </div> <!--乙方--> <div> <div class="left">乙方:</div> <div class="right"> 乙方姓名 <ng-container *ngTemplateOutlet="introduce; context: {data: data.partyB}"></ng-container> </div> </div> <!--let-data="data"就是上面传进来的值--> <ng-template #introduce let-data="data"> <p>合同介绍......</p> </ng-template> </div>
ngTemplateOutlet은 템플릿 참조와 템플릿의 컨텍스트(예: ng-template) 객체를 정의하는 문자열이므로 템플릿 참조가 여러 개인 경우 이 방법을 사용할 수 있습니다. ngTemplateOutletContext는 연결된 컨텍스트(예: ng-template) 개체 EmbeddedViewRef입니다. 이는 로컬 템플릿 let에 의해 선언된 바인딩에 사용할 수 있는 키를 가진 객체여야 합니다. 컨텍스트(예: ng-template) 개체에서 $implicit 키를 사용하면 해당 값이 기본값으로 설정됩니다. ngTemplateOutlet은 외부에서 전달된 템플릿에도 사용할 수 있습니다
child.comComponent.html
<ng-template [ngTemplateOutlet]="tplRef" [ngTemplateOutletContext]="{data: data}"></ng-template>
child.comComponent.ts
@Input() tplRef: TemplateRef<any>
ng-템플릿 사용법
Usage one
*와 결합 ngIf를 사용하면 두 가지 다른 판단 조건을 추가할 필요가 없으며 html
<div *ngIf="text; else noData">{{text}}</div> <ng-template #noData> <div class="gary">暂无数据</div> </ng-template>
에서 직접 if else 문을 사용할 수 있습니다. 사용법 2
antd의 modalService를 사용하여 페이지에 대화 상자를 만들 때 , 템플릿을 HTML로 작성하고 참조로 로드한 다음 모달의 nzContent에 넣을 수 있습니다(약간 혼란스럽습니다. 코드를 보세요)
<ng-tempalte #content>xxxxxxx</ng-template>
export class AppComponent implements OnInit { // 引入模板 @ViewChild('content') contentTpl: TemplateRef<any>; ngOnInit() { this.modalService.create({ nzTitle: '标题', nzContent: this.contentTpl }) } }
Usage three
구성 요소에 입력으로 전달합니다. 이 구성 요소를 사용할 때 원하는 것을 작성할 수 있도록 템플릿 형태의 변수 예를 들어 아직 데이터가 없는 공유 구성 요소를 작성하는 경우 일반적으로 일부 특수한 경우에는 몇 가지 새 버튼을 추가해야 할 수도 있습니다.
empty.comComponent.html
<div> <img src=""/> <div> <ng-container [ngSwitch]="true"> <ng-container *ngSwitchCase="isTemplate(text)" [ngTemplateOutlet]="text" ></ng-container> </ng-container> {{text || ''}} </div> </div>
empty.comComponent.ts
export class EmptyComponent { @Input() text: TemplateRef<any> isTemplate(text: any) { return text instanceof TemplateRef; } }
요약하면 제가 지금 알고 있는 가장 기본적인 사용법은 이렇습니다. 추가를 환영합니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !
위 내용은 Angular 템플릿 지시문에 대한 간략한 설명: ng-template 및 ng-container 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Angular.js는 동적 애플리케이션을 만들기 위해 자유롭게 액세스할 수 있는 JavaScript 플랫폼입니다. HTML 구문을 템플릿 언어로 확장하여 애플리케이션의 다양한 측면을 빠르고 명확하게 표현할 수 있습니다. Angular.js는 코드를 작성, 업데이트 및 테스트하는 데 도움이 되는 다양한 도구를 제공합니다. 또한 라우팅 및 양식 관리와 같은 많은 기능을 제공합니다. 이 가이드에서는 Ubuntu24에 Angular를 설치하는 방법에 대해 설명합니다. 먼저 Node.js를 설치해야 합니다. Node.js는 서버 측에서 JavaScript 코드를 실행할 수 있게 해주는 ChromeV8 엔진 기반의 JavaScript 실행 환경입니다. Ub에 있으려면

앵귤러 유니버셜(Angular Universal)을 아시나요? 웹사이트가 더 나은 SEO 지원을 제공하는 데 도움이 될 수 있습니다!

인터넷의 급속한 발전과 함께 프론트엔드 개발 기술도 지속적으로 개선되고 반복되고 있습니다. PHP와 Angular는 프런트엔드 개발에 널리 사용되는 두 가지 기술입니다. PHP는 양식 처리, 동적 페이지 생성, 액세스 권한 관리와 같은 작업을 처리할 수 있는 서버측 스크립팅 언어입니다. Angular는 단일 페이지 애플리케이션을 개발하고 구성 요소화된 웹 애플리케이션을 구축하는 데 사용할 수 있는 JavaScript 프레임워크입니다. 이 기사에서는 프론트엔드 개발에 PHP와 Angular를 사용하는 방법과 이들을 결합하는 방법을 소개합니다.

각도에서 모나코 편집기를 사용하는 방법은 무엇입니까? 다음 글은 최근 비즈니스에서 사용되는 Monaco-Editor의 활용 사례를 기록한 글입니다.

인증은 모든 웹 애플리케이션에서 가장 중요한 부분 중 하나입니다. 이 튜토리얼에서는 토큰 기반 인증 시스템과 기존 로그인 시스템과의 차이점에 대해 설명합니다. 이 튜토리얼이 끝나면 Angular와 Node.js로 작성된 완벽하게 작동하는 데모를 볼 수 있습니다. 기존 인증 시스템 토큰 기반 인증 시스템으로 넘어가기 전에 기존 인증 시스템을 살펴보겠습니다. 사용자는 로그인 양식에 사용자 이름과 비밀번호를 입력하고 로그인을 클릭합니다. 요청한 후 데이터베이스를 쿼리하여 백엔드에서 사용자를 인증합니다. 요청이 유효하면 데이터베이스에서 얻은 사용자 정보를 이용하여 세션을 생성하고, 세션 정보를 응답 헤더에 반환하여 브라우저에 세션 ID를 저장한다. 다음과 같은 애플리케이션에 대한 액세스를 제공합니다.

PHP 이메일 템플릿: 이메일 콘텐츠 사용자 정의 및 개인화 이메일의 인기와 광범위한 사용으로 인해 기존 이메일 템플릿은 더 이상 개인화되고 사용자 정의된 이메일 콘텐츠에 대한 사람들의 요구를 충족할 수 없습니다. 이제 PHP 프로그래밍 언어를 사용하여 사용자 정의되고 개인화된 이메일 템플릿을 만들 수 있습니다. 이 기사에서는 PHP를 사용하여 이 목표를 달성하는 방법을 보여주고 몇 가지 구체적인 코드 예제를 제공합니다. 1. 이메일 템플릿 만들기 먼저 기본 이메일 템플릿을 만들어야 합니다. 이 템플릿은 HTM일 수 있습니다.

Angular 프레임워크의 구성 요소에 대한 기본 표시 동작은 블록 수준 요소에 대한 것이 아닙니다. 이 디자인 선택은 구성 요소 스타일의 캡슐화를 촉진하고 개발자가 각 구성 요소가 표시되는 방법을 의식적으로 정의하도록 장려합니다. CSS 속성 표시를 명시적으로 설정하면 Angular 구성 요소의 표시를 완전히 제어하여 원하는 레이아웃과 응답성을 얻을 수 있습니다.

각도-날짜/시간 선택기 형식을 사용자 정의하는 방법은 무엇입니까? 다음 기사에서는 형식을 사용자 정의하는 방법에 대해 설명합니다. 모든 사람에게 도움이 되기를 바랍니다.
