1. 脏数据检查 != 轮询检查更新 2. $digest后批量更新UI 3. 提速 $digest cycle
3.1. 关键点 3.2. 优化$watch 3.3. $apply vs $digest 3.4. 延迟执行
4. 优化ng-repeat 4.1. 限制列表个数 4.2. 使用 track by
5. 使用单次绑定
6. 慎用filter
7. 慎用事件
8. directive
9. 使用Batarang来分析性能
首先,provider
, value
, constant
, service
, factory
他们都是provider!(decorator
小朋友先搬个小板凳坐在边上等会儿,现在还没轮到你出场哈~)
provider是干啥的?
provider可以为应用提供通用的服务,形式可以是常量,也可以是对象。
比如我们在controller里常用的$http
就是AngularJS框架提供的provider~
AngularJS是通过该什么来触发绑定的,怎么触发?下边的三个概念需要知道:
Dirty Checking
的机制,由$digest()触发。Digest
。由$apply()
触发。Scope是AngularJS里的一个很重要的概念,简单的说它就是用来保存AngularJS Model们的对象,是Model们温暖的小家~
那这个小家是什么时候造的呢?
<html ng-app="mainApp">
</html>
区别总结如下:
directive中执行的$evalAsync
, 会在angular操作DOM之后,浏览器渲染之前执行。
controller中执行的$evalAsync
, 会在angular操作DOM之前执行,一般不这么用。
而使用$timeout
,会在浏览器渲染之后执行。
AngularJS是由Google创建的一种JS框架,使用它可以扩展应用程序中的HTML词汇,从而在web应用程序中使用HTML声明动态内容。
AngularJS可以让你扩展HTML的语法,以便清晰、简洁地表示应用程序中的组件,并允许将标准的HTML作为你的模板语言,AngularJS可以通过双向数据绑定自动从拥有JavaScript对 象(模型)的UI(视图)中同步数据。
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
很多文章中都有说道:当时ngRoute在路由配置时用$routeProvider,但是当ui-router路由配置时用 $stateProvider 和 $urlRouterProvider。
那么它们有什么不同呢?
1、ngroute是用AngularJS框架的核心部分。
2、ui-router是一个社区库,它是用来提高完善ngroute路由功能的。
Angularjs火的一塌糊涂,它的双向绑定确实很好用,但是,UI样式是弱项,BootStrap几乎与之同期横空出世,样式那叫一个美呀。所以,ng搭载bootstrap,那叫一个郎才女貌呀!!!
废话别一大堆了,说正题:
一句话说明区别:ui-bootstrap-tpls.min.js == (ui-bootstrap.min.js + html templates)
如果,你只在项目中选择了:ui-bootstrap.min.js。那么:你也将需要提供您自己的HTML模板。
否则的话,你将会看到类似这样的错误:
GET http://camnpr.com/website/template/tooltip/tooltip-popup.html 404 (Not Found) angular.js:7073
Error: [$compile:tpload] http://errors.angularjs.org/undefined/$compile/tpload?p0=template%2Ftooltip%2Ftooltip-popup.html
一个列表循环,序号标识是常见的,c#语言如何实现,我们知道,C# repeater控件里添加序号的4种方法。那么在js框架angularjs里使用ng-repeat怎么实现添加序号呢?
直接上代码,一看就懂了:
<table class="table table-bordered mt20 table-td-center">
<thead>
<tr>
<th>序号</th>
angular.module('admin.services', ['ngResource'])
// GET TASK LIST ACTIVITY
.factory('getTaskService', function($resource) {
return $resource(
'../rest/api.php',