绑定类型

绑定类型可以按照数据流的方向分为三类:从源到视图,从视图到源,以及双向序列

示例

<!-- Bind button disabled state to `isUnchanged` property -->
<button [disabled]="isUnchanged">Save</button>

绑定对象

Property binding

<img [src]="heroImageUrl">
<img bind-src="heroImageUrl">
<div [ngClass]="classes">[ngClass] binding to the classes property</div>

不要忘记方括号

正确的写法

<app-hero-detail [hero]="currentHero"></app-hero-detail>

错误的写法

<!-- ERROR: HeroDetailComponent.hero expects a
Hero object, not the string "currentHero" -->
<app-hero-detail hero="currentHero"></app-hero-detail>

HeroDetail组件的hero属性需要一个Hero对象,这正是您在属性绑定中发送的内容:括号告诉Angular评估模板表达式。
如果省略方括号,Angular会将该字符串视为常量并使用该字符串初始化目标属性。

属性绑定还是插值?

下面写法等效

<p><img src="{{heroImageUrl}}"> is the <i>interpolated</i> image.</p>
<p><img [src]="heroImageUrl"> is the <i>property bound</i> image.</p> <p><span>"{{title}}" is the <i>interpolated</i> title.</span></p>
<p>"<span [innerHTML]="title"></span>" is the <i>property bound</i> title.</p>

Attribute, class, and style bindings

Attribute binding

错误的写法

<tr><td colspan="{{1 + 1}}">Three-Four</td></tr>

报错

Template parse errors:
Can't bind to 'colspan' since it isn't a known native property

正确的写法

<!--  expression calculates colspan=2 -->
<tr><td [attr.colspan]="1 + 1">One-Two</td></tr>

Class binding

不使用bind

<div class="bad curly special">Bad curly special</div>

使用bind

<!-- reset/override all class names with a binding  -->
<div class="bad curly special"
[class]="badCurly">Bad curly</div>

Style binding

Style binding语法类似于Property binding。 代替括号内的元素属性,从前缀样式开始,后跟一个点(.)和一个CSS样式属性的名称:[style.style-property]

<button [style.color]="isSpecial ? 'red': 'green'">Red</button>
<button [style.background-color]="canSave ? 'cyan': 'grey'" >Save</button>

一些样式有一个单位扩展名。

<button [style.font-size.em]="isSpecial ? 3 : 1" >Big</button>
<button [style.font-size.%]="!isSpecial ? 150 : 50" >Small</button>

Event binding

两种写法

<button (click)="onSave()">Save</button>
<button on-click="onSave()">On Save</button>
<input [value]="currentHero.name"
(input)="currentHero.name=$event.target.value" >

还可以自定义Event

Two-way binding ( [(...)] )

Angular为双向绑定提供了一种特殊的双向数据绑定语法,[(x)]。 [(x)]语法将属性绑定的括号[x]与事件绑定的括号(x)组合在一起。

[( )] = BANANA IN A BOX
香蕉在一个盒子里
在盒子中形象化一个香蕉,记住圆括号在括号内。

示例

<app-sizer [(size)]="fontSizePx"></app-sizer>
<div [style.font-size.px]="fontSizePx">Resizable Text</div>

双向绑定语法实际上只是语法绑定和事件绑定的语法糖。

<app-sizer [size]="fontSizePx" (sizeChange)="fontSizePx=$event"></app-sizer>

Angular语法(三)——数据绑定的更多相关文章

  1. angular 语法的应用

    angular.js 一个js框架 , 是三大主流框架之一:( vue  react angular ): 原先的开发:前端和后台,利用 Ajax 进行交互, 但是框架却提出了一种开发模式:mvc 这 ...

  2. PHP语法(三):控制结构(For循环/If/Switch/While)

    相关链接: PHP语法(一):基础和变量 PHP语法(二):数据类型.运算符和函数 PHP语法(三):控制结构(For循环/If/Switch/While) 本文我来总结几个PHP常用的控制结构,先来 ...

  3. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  4. Pocket英语语法---三、英语动词的特点是什么

    Pocket英语语法---三.英语动词的特点是什么 一.总结 一句话总结:即表示时间(时态),又表示人数(单复数) 1.第十七讲,不定量表达法? 1.a few为肯定含义几个,few为否定含义没几个, ...

  5. angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例

    基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" ...

  6. Angular JS - 3 - Angular JS 双向数据绑定

    一 .数据绑定 1. 数据绑定: 数据从一个地方A转移(传递)到另一个地方B, 而且这个操作由框架来完成2. 双向数据绑定: 数据可以从View(视图层)流向Model(模型,也就是数据), 也可以从 ...

  7. Angular(三)

    Angular开发者指南(三)数据绑定   数据绑定AngularJS应用程序中的数据绑定是模型和视图组件之间的数据的自动同步. AngularJS实现数据绑定的方式可以将模型视为应用程序中的单一来源 ...

  8. Angular解决双向数据绑定

    <!DOCTYPE html> <html ng-app="myApp1"><body><div ng-controller=" ...

  9. ios -- 教你如何轻松学习Swift语法(三) 完结篇

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.自动引用计数   1.自动引用计数工作机制      1.1 swift和o ...

随机推荐

  1. [Angular] Using NO_ERRORS_SCHEMA

    For example, when testing container component we might import lots of children components, but we di ...

  2. [Elm] Functions in Elm

    Functions are an important building block in Elm. In this lesson we will review stateless functions, ...

  3. iOS开发网络学习七:NSURLSession的基本使用get和post请求

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  4. 新版itunes添加铃声

    iTunes 铃声制作-图文教程 ① 点选设备iPhone - 勾选手动管理音乐和视频 - 点击应用 注意:因本操作涉及iPhone内音乐和视频,请操作前先对音乐和视频进行相关备份,以免同步后被刷掉造 ...

  5. Android 软键盘监听事件

    Android软键盘的隐藏显示研究 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入.     那么,弹出软键盘后必然会造成原有布局高度的减少 ...

  6. svn hook pre-commit

    #!/bin/bashexport LANG="zh_CN.UTF-8" #确保中文日志显示正常,便于统计日志REPOS="$1"TXN="$2&qu ...

  7. todo bitnami

    https://bitnami.com/stack/dokuwiki https://bitnami.com/stack/jenkins/installer

  8. 【u024】没有上司的舞会

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就 ...

  9. AE中网络分析的实现 的各个类之间的关系

    原文AE中网络分析的实现 的各个类之间的关系 1.     创建网络数据集 在ArcCatalog中勾选网络分析模块,新建个人地理信息数据库—>新建要素数据集—>批量导入要素—>创建 ...

  10. [Postgres] Group and Aggregate Data in Postgres

    How can we see a histogram of movies on IMDB with a particular rating? Or how much movies grossed at ...