## 简单的表达式
**运算表达式**
```
<h1>{{ 1+1 }}</h1>
// 2
```
**字符串表达式**
```
<p>{{ '字符串表达式' }}</p>
// 字符串表达式
```
**对象表达式**
```
<div ng-init="person={name:'angular'}">
<p>{{ person.name }}</p>
</div>
// angular
```
**数组**
```
<div ng-init="arr=[1, 'a']">
<p>arr[1]</p>
</div>
// a
```
其实,双花括号是指令"`ng-bind`"的缩写形式。
```
<div ng-init="arr=[1, 'a']">
<p>arr[1]</p>
</div>
```
等价于:
```
<div ng-init="arr=[1, 'a']">
<p><span ng-bind="arr[1]"></span></p>
</div>
```
有一点要特别注意:HTML加载含有`{{ }}`语法的元素后并不会立刻渲染它们,这也是因此而导致未渲染内容闪烁(Flash of Unrendered Content, FOUC)。但是使用`ng-bind`可以避免这个问题,因为内容会被当做子文本节点渲染到含有`ng-bind`指令的元素内。
当然,还有另一种处理闪烁问题,那就是使用另一个指令:`ng-cloak`
当一个元素中含有此指令时,只有AngularJS模板已经完全编译,才会显示该元素。否则,显示元素的原始形式和模板代码。
```
<div class="ng-cloak">{{1+2+3}}</div>
```
- 前言
- 第一章:AngularJS简介
- 第二章:模块
- 模块的使用
- AngularJS 生命周期
- 第三章:控制器
- 第四章:作用域
- 作用域解析
- $watch和$apply
- $scope的生命周期
- 第五章:过滤器
- 内置的过滤器
- 自定义过滤器
- 第六章:表达式
- 简单的表达式
- 手动解析表达式
- 插值字符串
- 第七章:指令
- 内置指令
- 自定义指令
- 第八章:组件
- 组件的使用
- 组件的生命周期
- 第九章:模板
- 第十章:依赖注入
- 第十一章:表单
- 表单验证
- ngMessages
- 第十二章:MVC模式
- 第十三章:Service服务
- 内置的服务
- 自定义服务
- 第十四章:与服务端交互
- 简单的交互
- 跨域请求
- Angular缓存
- 强大的promise
- 第十五章:路由
- 模板
- 路由使用
- 路由模式
- 路由事件
- $location
- ui.router
- 第十六章:动画
- 入门级动画
- 自定义动画
- $animate API
- $animateCss
- 第十七章:事件
- 第十八章:angular.element
- 第十九章:全局API
- 第二十章:开发技巧及注意点
- AngularJS和IE
- 第二十一章:为Angular2留坑
- 第二十二章:Angular2 简介
- 第二十三章:Angular2 开发环境搭建
- 第二十四章:Angular2 TypeScript
- 第二十五章:Angular2 模块(module)
- 模块的元数据
- 特性模块
- 第二十六章:Angular2 组件(component)
- 组件的元数据
- 组件的样式
- 组件之间的通信
- 生命周期
- DOM操作
- 第二十七章:Angular2 装饰器和元数据
- 元数据
- 装饰器
- 第二十八章:Angular2 表单(form)
- 模板驱动的表单
- 模型驱动的表单
- 自定义验证器
- 第二十九章:Angular2 事件(event)
- 第三十章:Angular2 模板(template)
- 第三十一章:Angular2 指令(directive)
- 常用内置指令
- 结构型指令
- 属性型指令
- 第三十二章:Angular2 数据绑定(data binding)
- 第三十三章:Angular2 依赖注入(injection)
- 第三十四章:Angular2 服务(service)
- 第三十五章:Angular2 路由(route)
- 路由器部件
- 第三十六章:Angular2 HTTP通信
- 第三十七章:Angular2 管道(pipe)
- 内置管道
- 自定义管道
- 第三十八章:Angular2 动画(animate)
- 动画的实现
- 路由动画
- 第三十九章:案例实战
- 附录:源码下载
- 附录:问题及解决方法