AngularJS里的service $evalAsync和$timeout的区别

分类:Javascript| 发布:佚名| 查看: | 发表时间:2014/10/24

区别总结如下:

directive中执行的$evalAsync, 会在angular操作DOM之后,浏览器渲染之前执行。

controller中执行的$evalAsync, 会在angular操作DOM之前执行,一般不这么用。

而使用$timeout,会在浏览器渲染之后执行。

以下是测试DEMO:

//创建一个app module
var app = angular.module( "Demo", [] );

//测试 $timeout() 和 $evalAsync() 函数的输出时间顺序
app.directive(
"bnTiming",
function( $timeout ) {

// 本地scope的一个js事件绑定@camnpr
function link( $scope, element, attributes ) {

$timeout(
function() {
console.log( "$timeout 1" );
}
);

$scope.$evalAsync(
function( $scope ) {
console.log( "$evalAsync" );
}
);

$timeout(
function() {
console.log( "$timeout 2" );
}
);
}

// 返回这个指令的配置@camnpr
return({
link: link
});
}
);

输入结果如下:
$evalAsync
$timeout 1
$timeout 2

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/1683.html