6. 数据双向绑定

视图和数据,只要一方发生变化,另一方跟着变化。

好处是不需要在代码中手动更新视图,简化开发,增加代码内聚性,代码可读性更强。

缺点是当绑定的数据层次深、数据量大时,会影响性能。

双向数据绑定的语法是[(x)].

修改article.component.html中的内容如下:

<input type="text" [(ngModel)] = "content">
{{content}}

当在input框中输入内容时,插值表达式的位置内容会同时改变。在使用ngModel时需要在app.module.ts中增加FormsModule的引用。修改app.module.ts的内容如下:

//在文件头部增加如下一行:
import {FormsModule} from "@angular/forms";
//在imports中增加FormsModule
imports: [
BrowserModule,
FormsModule
]

7. angular指令操作

7.1 判断指令

7.1.1 不带else分支的if指令

article.component.ts中定义一个布尔类型的值,然后定义一个函数,如下:

export class ArticleComponent implements OnInit {
status = false;
changeStatus(){
this.status = true;
}
}

article.component.html定义内容如下:

<button class="btn btn-sm btn-info" (click)="changeStatus()">更改状态</button>
<p *ngIf="status">
默认状态下这段话是不显示的,因为status值为false,当单击上面的按钮,
把status的值设为true时,这段话才显示。
</p>

则页面显示效果如<p>标签中的内容所示。

7.1.2带else分支的if指令

修改article.component.ts的内容如下:

<p *ngIf="status;else p1">
默认状态下这段话是不显示的,因为status值为false。
</p>
<ng-template #p1>
<p>如果上面那段话不显示,则表示执行else逻辑,显示这一段话。</p>
</ng-template>

则页面上初始化时只显示第二段话,表明执行的是else逻辑。ng-template指令后面会讲到。

7.2 样式指令

下面是内联样式和类样式的写法:

<style>
.bg{
background-color: pink;
}
</style>
<p [ngClass]="{bg:true}">这段内容应用的是类样式。</p>
<p [ngStyle]="{backgroundColor:getColor()}">本段内容样式是内联样式。</p>

页面显示效果如下:

7.3 循环指令

article.component.ts中定义一个数组:

export class ArticleComponent implements OnInit {
articles = ['第一篇文章','第二篇文章', '第三篇文章']
}

article.component.html中通过循环指令输出数组内容:

<p *ngFor="let article of articles; let i = index">
{{i}} - {{article}}
</p>

其中的i为循环下标。页面效果如下所示:

ng-template的说明

ng-template指令用来定义模板,如下代码所示:

<ng-template #p1>
<p>段落内容</p>
</ng-template>

上面定义了一个简单的模板,id为p1,别的地方可以通过id来引用这个模板。

Angular7教程-04-Angular常用操作(下)的更多相关文章

  1. python对redis的常用操作 下 (无序集合,有序集合)

    无序集合: 首先介绍增加,删除和获得所有元素的方法.我将会用第二部分来讨论集合的特殊操作: In [136]: x.sadd("challenge", 1,2,3,4,5,6,7, ...

  2. Angular7教程-06-页面与数据交互

    1. 本节说明 本节的内容会在上期搭建的框架基础上进行数据的填充,顺便回顾之前介绍过的插值表达式,属性绑定等知识,本节的数据只是在组件中模拟数据,后面会有专门的章节讲解如何从服务器获取数据. 2. 轮 ...

  3. Angular7教程-05-搭建项目环境

    1. 本节说明 本节以及后面的内容我们将会通过搭建一个简单的博客程序来对angular进行介绍,项目使用前端框架是bootstrap.版本v3.3.7,另外需要安装jquery.关于bootstrap ...

  4. linux下关于gz和bz2压缩格式的常用操作技巧

    .gz和.bz2都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件..bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间. 也就是说同一个文件,压缩 ...

  5. Linux下mysql的常用操作

    Linux下mysql的常用操作: 显示数据库 show databases; 选择数据库 use 数据库名; 显示数据库中的表 show tables; 显示数据表的结构 describe 表名; ...

  6. ubuntu下安装mysql及常用操作

    1.可通过ps -ef | grep mysql命令查看系统中是否有安装mysql 如果出现类似上述的页面,就证明是已经安装过了mysql,否则就是没有. 2.安装mysql 很简单,只需要键入如下命 ...

  7. ubuntu的学习教程(常用操作)

    摘要 最近在学习linux,把自己学习过程中遇到的常用操作以及一些有助于理解的内容记录下来.我主要用的是ubuntu系统 命令提示符 '~' 这个是指用户的家目录,用户分为root用户和普通用户,ro ...

  8. 网站用户行为分析——在Ubuntu下安装MySQL及其常用操作

    安装MySQL 使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本: sudo apt-get update #更新软件源 sudo apt-get install mysq ...

  9. Linux下常用操作

    ************************ 镜像操作 ************************************* screen -s name 新建 screen -r name ...

随机推荐

  1. 用WebStorm开发TypeScript

    为什么是TypeScript 最近在做H5的游戏,最终选定的TypeScript作为开发语言.主要是看重他有强类型和Class,作为习惯使用AS3,Java等强类型编程的人来说,还是习惯这种编程写法. ...

  2. svn add @2x image 文件

    svn add `svn status . | grep "^?" | awk '{print $2"@"}'`

  3. Oracle 通过出生日期计算年龄

    方法一: SELECT TRUNC(months_between(sysdate, birth)/12) AS age from mytable 方法二: select TRUNC((to_char( ...

  4. SVN - Checksum mismatch while updating

    Go to the folder with the file causing problems Execute command svn update --set-depth empty (note: ...

  5. js API列表

    //  主要是ES的API和一小部分浏览器的API. //  新加入标准的API有可能是浏览器事实上早已实现的. //   ECMAScript目前是每年都会发布新版本(目前已经相对稳定,每年都会又增 ...

  6. Node.js 常用 API

    Node.js v6.11.2  Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 20 ...

  7. forkjoin框架疑问记录

    今天在看jdk1.7的forkjoin框架时候,里面有个例子如下: product类: public class Product { private String name; private doub ...

  8. js实现查找字符串出现最多的字符和次数

    代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=" ...

  9. 类库文件引用web服务报错解决方法-在 ServiceModel 客户端配置部分中,找不到引用协定的默认终结点元素

    由于需求,需要改造原有应用,因原有应用是写在console下面的,现在需要开放至web下, 想到BIZ层应用代码都是一样的,又不想在web下在添加引用,而重复写代码,故将原有的console下的服务和 ...

  10. [BZOJ 2510]弱题

    2510: 弱题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 419  Solved: 226[Submit][Status][Discuss] D ...