• 技术文章 >web前端 >js教程

    浅谈一下Angular模板引擎ng-template

    青灯夜游青灯夜游2021-07-12 17:45:09转载102
    本篇文章带大家了解一下在重构管理控制台中使用到的Angular的模板引擎ng-template,简单介绍一下ng-template中的ng-container、ngIf,ngFor、ngClass、ngStyle和ngSwitch。

    模板引擎是Web应用中用来生成动态HTML的一个途径, 负责将数据模型与HTML模板结合起来(即模板渲染),生成最终的HTML。 编写HTML模板的语法称为模板语法,模板语法的表达能力和可扩展性决定了模板引擎的易用性。【相关教程推荐:《angular教程》】

    ng-template简介

    ng-template表示为Angular模板:这意味着此标记的内容将包含模板的一部分,然后可以与其他模板一起组合以形成最终的组件模板。

    ng-template主要包括:ng-containerngIfngForngClassngStylengSwitch

    ng-container

    ng-container是一个逻辑容器,是 Angular 结构型指令中的一种,用于包含控制内部元素的显示与否。

    ng-container可以包含任何元素,包括文本,但本身不会生成元素标签,也不会影响页面样式和布局。包含的内容,如果不通过其他指令控制,会直接渲染到页面中。

    基本语法

    <div>
      <ng-container>
        <p>This is paragraph 1.</p>
        <p>This is paragraph 2.</p>
      </ng-container>
    </div>

    渲染后

    <div>
      <p>This is paragraph 1.</p>
      <p>This is paragraph 2.</p>
    </div>

    ngIf

    ngIf 用于根据表达式的值,在指定位置渲染 thenelse 模板的内容。

    * `then` 模板除非绑定到不同的值,否则默认是 ngIf 指令关联的内联模板。
    
    * `else` 模板除非绑定对应的值,否则默认是 null。复制代码

    简单形式

    <div *ngIf="!isLoggedIn">
      Please login, friend.
    </div>
    
    <!-- logic && operator -->
    <div *ngIf="isLoggedIn && !isNewUser">
      Welcome back, friend.
    </div>
    
    <!-- logic OR operator -->
    <div *ngIf="isLoggedIn || isNewUser">
      Welcome!
    </div>

    使用else块

    <div *ngIf="isLoggedIn; else loggedOut">
      Welcome back, friend.
    </div>
    
    <ng-template #loggedOut>
      Please friend, login.
    </ng-template>

    使用then和else块

    <ng-container *ngIf="isLoggedIn; then loggedIn; else loggedOut"></ng-container>
    
    <ng-template #loggedIn>
      <div>
        Welcome back, friend.
      </div>
    </ng-template>
    <ng-template #loggedOut>
      <div>
        Please friend, login.
      </div>
    </ng-template>

    ngFor

    ngFor用于使用可迭代的每个项作为模板的上下文来重复模板的一种方式。提供了可以被局部变量别名的其他值:

    <mat-list-item *ngFor="let event of events">
        <h3 matLine>{{event.title}}</h3>
        <p matLine class="secondary-text">{{event.detail}}</p>
    </mat-list-item>

    ngClass

    ngClass指令更改绑定到其附加的组件或元素的class属性。

    <a
          class="favorite"
          [ngClass]="[isFavorite ? 'text-dark' : 'text-gray']"
          (click)="setFavorite()"
    >
          <i class="fe fe-heart font-size-21"></i>
    </a>

    ngClass第一个参数为类名称,第二个参数为boolean值,如果为true就添加第一个参数的类。

    ngStyle

    ngStyle来修改组件或元素的style属性。

    <div class="label-color" [ngStyle]="{'background-color': labels | getById:labelId:'color'}"></div>
    // 判断添加
    <div [ngStyle]="{'background-color':template === 'dark' ? 'dark' : 'light' }"></<div>

    ngSwitch

    ng-switch根据表达式的值显示或这隐藏对应部分。

    <div ng-switch="表达式/变量">
        <div ng-switch-when="value"></div>
        <div ng-switch-when="value"></div>
        <div ng-switch-when="value"></div>
        <div ng-switch-default></div>
    </div

    更多编程相关知识,请访问:编程视频!!

    以上就是浅谈一下Angular模板引擎ng-template的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:Angular ng-template
    上一篇:这些Nodejs面试难题,你能回答上来吗? 下一篇:一文带你深入了解实现call、apply和bind方法
    第16期线上培训班

    相关文章推荐

    • 浅谈Angular中navigate()和navigateByUrl()使用方法的区别• 深入了解Angular中的PIPE(管道)• 一文了解Angular中处理错误的方式• 一文快速了解Angular中的NgRx/Store框架• 浅析Angular路由中的懒加载、守卫、动态参数• 浅谈Angular如何使用ng-content进行内容投影

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网