# Angular
视图我们有了模块和控制器之后,内容和交互逻辑就已经基本确定了,接下来我们就得把它们展示给用户了,这时就用到“视图”(view)。CSS并不在Angular的范围内,在实践中,常常结合一套成熟的CSS架构来做,比如Bootstrap就可以和Angular结合得非常好。Angular中实现视图的主体是模板。最常见的模板形式当然是HTML,也有通过Jade等中间语言编译为HTML的。
模板中包括静态信息和动态信息,静态信息是指直接写死(hard code)在模板中的,而动态信息则是对scope中内容的展示。展示动态信息的方式有两种:
* 绑定表达式:形式如{{username}},绑定表达式可以出现在HTML中的文本部分或节点的属性部分。
* 指令:形式如<span ng-bind="username"></span>,事实上任何指令都可以用来展示动态信息,展示的方式取决于指令的内在实现逻辑。视图中的绑定表达式或指令中用到的变量或函数都是$scope中的一个属性或方法,上面两个表达式绑定的都是$scope.username,但是也可以绑定到方法,如$scope.getFirstName()。绑定到方法是一种很常用的方式,但是如果使用不当,也可能导致一些很难追查的Bug。特别要注意不要在方法中返回一个新对象或新数组,否则会出现“10$digest iterations reached.”错误。
另一个要点是,在表达式中无法直接使用window对象下的全局属性或方法。Angular这样的设计可以确保视图的局部性,以免受到意料之外的干扰而出现Bug。如果确实需要调用,请在Controller中简单包装一层。除了展示信息之外,常常还需要对信息进行格式化,比如把一个Date对象格式化为“年-月-日”格式或“年-月-日 时:分:秒”格式。一个分层清晰的系统,在scope中通常是没有格式的概念的,想要显示成什么格式是视图层的事情。这样的设计可以提高Model层的内聚性(只做一件事),把与此相关的需求变更在视图层处理,可以提高Model层的稳定性。Angular中对信息进行格式化的机制是过滤器(Filter),如:{{birthday|date}}。
- Angular简介
- angular1资料网站
- Angular初级部分
- 打破传统的前端
- Angular基本组成部分
- Angular环境搭建
- Angular项目测试
- Angular基础概念
- Angular模块
- Angular控制器
- Angular指令
- Angular表达式
- Angular视图
- Angular基础实战
- Angular模块创建和使用
- Angular控制器和模型创建
- scope对象
- 控制器中调度window对象和document对象
- Angular表达式调度过滤器
- Angular中的ng模块全局方法
- Angular模板应用
- 使用指令复制元素
- 使用指令隐藏显示元素
- Angular指令ng-if
- ng-src和ng-href
- Angular处理样式
- Angular作用域事件传递
- 表单中的元素
- Angular初学者常见的坑
- 再论双向绑定
- Angular中级部分
- Angular路由机制
- ui-router管理状态
- ui-router状态嵌套和视图嵌套
- ui-router多个命名的视图
- ui-router路由控制
- 自定义指令
- 自定义过滤器
- Angular项目目录结构
- Angular服务
- Angular高级部分
- Angular依赖注入
- README