最近的项目在下一个发布将放弃对 IE8
的支持,于是准备将 AngularJS
从1.2.7
升级到 1.3.x
。
在正式的迁移之前,对 AngularJS
1.3 的一些改动做调研,以下是今天调研的四篇文章。
- Exploring Angular 1.3: One-time bindings
- Exploring Angular 1.3: Angular-hint
- Exploring Angular 1.3: ng-model-options
- Exploring Angular 1.3: Stateful filters
单向数据绑定
双向绑定可谓 AngularJS
的核心杀手锏之一。但由于每一个绑定都增添了一个 watcher
,绑定的数据在不断的增加,$digest
势必会花费更多的时间去处理。
一方面许多数据只需一次性绑定即可,后续无需再次更新;另一方面,为了提高整体的性能,AngularJS
在 1.3 提供了单向的绑定。在使用上,单向数据绑定与双向仅有细微的差别,即在 {{}}
directive 中,为绑定的数据添加 ::
前缀即可:
|
|
angular-hint
AngularJS 1.3 中新增一个 angular-hint
模块,这个模块旨在帮助开发者更易于开发 AngularJS
应用程序,避免开发中一些易遗漏,但难于调试的问题。例如,在 HTML
中引入了一个新的 directive
,但是忘记将这个 directive
加入 application 的依赖模块中。使用这个模块的步骤如下:
下载
angular-hint
模块1npm install --save angular-hint在页面中引用此模块
1<script src="path/to/angular-hint/hint.js></script>使用
ng-hint
directive1<html ng-app="exampleApp" ng-hint>
新增的 angular-hint
包含 5 个子模块:angular-hint-controllers
, angular-hint-directives
, angular-hint-dom
, angular-hint-events
, angular-hint-modules
以及 angular-hint-interpolation
,各个模块对应不同的错误类型检测。使用 angular-hint
的时候,可以仅使用其中的某个/些模块:
|
|