<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="AngularJS里的service $evalAsync和$timeout的区别" id="card1">
<p> 游客</p><p>
标题:AngularJS里的service $evalAsync和$timeout的区别<br/>
正文:<br/>
区别总结如下：directive中执行的$evalAsync， 会在angular操作DOM之后，浏览器渲染之前执行。controller中执行的$evalAsync， 会在angular操作DOM之前执行，一般不这么用。而使用$timeout，会在浏览器渲染之后执行。以下是测试DEMO：//创建一个app module<br/> var app = angular.module( &quot;Demo&quot;, [] ); <br/> <br/> //测试 $timeout() 和 $evalAsync() 函数的输出时间顺序<br/> app.directive(<br/>      &quot;bnTiming&quot;,<br/>      function( $timeout ) {<br/> <br/>          // 本地scope的一个js事件绑定@camnpr<br/>          function link( $scope, element, attributes ) {<br/> <br/>             $timeout(<br/>                 function() { <br/>                    console.log( &quot;$timeout 1&quot; ); <br/>                 }<br/>             );<br/> <br/>             $scope.$evalAsync(<br/>                 function( $scope ) { <br/>                    console.log( &quot;$evalAsync&quot; ); <br/>                 }<br/>             );<br/> <br/>             $timeout(<br/>                 function() { <br/>                    console.log( &quot;$timeout 2&quot; ); <br/>                 }<br/>             );<br/>          }<br/> <br/>          // 返回这个指令<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1683&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1683&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1683&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1683&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1683">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1683">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>