??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩欧美中文字幕公布,亚洲一区二区三区精品在线,在线看的你懂得http://www.aygfsteel.com/usherlight/category/54691.html天^׃白云泉,云自无心(j)水自闌Ӏ何必奔冲山下去Q更LL向人间Q?/description>zh-cnSat, 28 Feb 2015 03:14:18 GMTSat, 28 Feb 2015 03:14:18 GMT60使用AngularJS与服务器通讯http://www.aygfsteel.com/usherlight/archive/2015/02/27/423086.html云自无心(j)水自?/dc:creator>云自无心(j)水自?/author>Fri, 27 Feb 2015 10:39:00 GMThttp://www.aygfsteel.com/usherlight/archive/2015/02/27/423086.htmlhttp://www.aygfsteel.com/usherlight/comments/423086.htmlhttp://www.aygfsteel.com/usherlight/archive/2015/02/27/423086.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/423086.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/423086.html先给一个例子:(x)
$http. get('/remote/item' ). then(function(response) {
console.log('成功?);
}, function(errResponse) {
console. error('出错.' );
});

一。介lPromise
在这个例子中Q?http.get()函数q回?jin)一个Promise对象, 有了(jin)q个对象Q我们才能很方便地直接在后面dthen函数的定义?br />Promise对象在AngularJS中是一个非帔R要的存在。它提供?jin)强大的功能和便利性?br />
1。异步?br />从定义的语法上看Q操作似乎是同步的,但是Promise的工作其实是异步的,只有在服务端q回数据后,后箋的函数才?x)被调用。这是一个事仉动,非阻塞式的框架?br />
2。它避免?jin)其它框架的嵌套回调函数的缺炏V?br />Q所有异步Q务都?x)返回一个Promise对象
Q每个Promise对象都有一个then函数Qthen函数有两个参敎ͼ分别是成功处理函数和p|处理函数
Q失败处理函数和成功处理函数都只?x)在异步处理完成后被调用一?br />Qthen函数也会(x)q回Promise对象Q这P我们可以把多个函Cqv来成Z个函数链
Q成功处理函数和p|处理函数的返回值可以被传递到函数链下一个的函数?br />Q如果在成功Q或者失?处理函数中,又开始了(jin)一个异步调用,那么函数链中的函数将?x)在q个异步调用l束后才开?br />
二。异步链式调用的后箋处理
假如我们定义?jin)如下的函数链?x)
$http.get('/item').then(s1, e1).then(s2, e2).then(s3, e3);
我们如何自主的根据函数链中每个函数的q行l果Q决定触发后l函数的成功处理函数或者失败处理函数呢Q?br />比如_(d)在s1处理q程中,发生问题Q于是我们触发了(jin)e2, 但是在e2处理完后Q我们又惌发s3.
AnguarJS提供?q来满L(fng)需求?br />如果我们惌发函数链中下一个函数的成功处理Q我们只需要最后给Z个返回|有了(jin)q回|AngularJS?x)认为函数执行正,自动调用下一个函C的成功处?br />如果惌发失败处理,那么可以单地q回$q.reject(data)Q这样就?x)触发下一个函数的p|处理

]]>
AngularJS中的依赖注入和服?service)http://www.aygfsteel.com/usherlight/archive/2015/02/09/422835.html云自无心(j)水自?/dc:creator>云自无心(j)水自?/author>Mon, 09 Feb 2015 11:28:00 GMThttp://www.aygfsteel.com/usherlight/archive/2015/02/09/422835.htmlhttp://www.aygfsteel.com/usherlight/comments/422835.htmlhttp://www.aygfsteel.com/usherlight/archive/2015/02/09/422835.html#Feedback0http://www.aygfsteel.com/usherlight/comments/commentRss/422835.htmlhttp://www.aygfsteel.com/usherlight/services/trackbacks/422835.html
在前文(http://www.aygfsteel.com/usherlight/archive/2015/02/01/422633.htmlQ中我们曄介绍q,定义controllerӞ需?个参敎ͼW一个参数是controller的名UͼW二个参数是一个数l,数组的最后一个元素将是controller的函敎ͼ前面的参数是controller的依赖项。我们现在就来仔l分析一下其中的具体q程?br />
先给一个例子:(x)
angular. module('notesApp' , [])
 . controller('MainCtrl' , ['$log' , function($log) {
 var self = this;
 self. logStuff = function() {
 $log. log('The button was pressed' );
 };
 }])

在这个例子中可以看到Q我们在W一个参C用字W串Q服务名Uͼ(j)d?jin)一个依赖项。当我们通过字符串声明了(jin)q一个服务之后,我们可以把它当作一个变量注入到函数中。AngularJS?x)自动查扑֭W串名称对应的服务名Q按照顺序将其注入到函数中?br />
myModule.controller("MainCtrl",  ["$log", "$window", function($l, $w) {}]);
在这个例子中Q?log, $windows是AngularJS自带的两个服务,在数l中通过名称声明后,?x)被注入到函数的两个参数中?br />比较常用的AngularJS自带的服务有Q?window, $location, $http{?br />
从上面的例子中可以看出,AngularJS的设计思想是不要在函C自己d例化或者通过其它途径来获取服务的实例Q而是声明需要的对象Q由AngularJS来注入具体的实例?br />
创徏自己的服?br />什么时候应该创建服务,而不是controller呢?
1?需要重用的时?br />2。需要保留应用的状态。这是非帔R要的一点,controller是会(x)不断地被创徏和销毁的Q如果需要保存应用的状态,需要用service
3。和面昄无关
4。需要和W三Ҏ(gu)务整?br />5。缓?br />
服务是会(x)被gq加载的Q也是说只有在W一ơ被引用的时候,才会(x)被创建?br />服务会(x)被定义一ơ,也只?x)被实例化一ơ?br />


]]>
AngularJS的一些用方法和技巧(2Q?/title><link>http://www.aygfsteel.com/usherlight/archive/2015/02/03/422713.html</link><dc:creator>云自无心(j)水自?/dc:creator><author>云自无心(j)水自?/author><pubDate>Tue, 03 Feb 2015 11:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2015/02/03/422713.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/422713.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2015/02/03/422713.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/422713.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/422713.html</trackback:ping><description><![CDATA[<div>07. ng-repeart</div><div><span style="white-space:pre"> </span>a. 在@环map的时候,?x)自动根据键D行排序?/div><div><span style="white-space:pre"> </span>b. 一些自带的变量Q?first(是否是第一?, $last(是否是最后一?, $middle(是否是中间的), $index(下标Q根据键值排序后的下?, $even, $odd</div><div>08. 自己定义新变量时不要使用$$开头?/div><div>09. 可以使用track-by表达式来优化对DOM的操作,对DOM对象使用从数据库取得的ID来进行标讎ͼq样的话Q当我们重复多次从数据库中取出相同的数据的时候,DOM对象p够被重用?/div><div>10. 数据双向l定的好?/div><div><span style="white-space:pre"> </span>a. 如果我们x变页面Form中的数|我们不需要在Javascript中,Ҏ(gu)ID或者名U来查找相应的Form控gQ只需要改变Controller变量的|不需要JQuery的Selector,也不需要findElementByID</div><div><span style="white-space:pre"> </span>b. 如果我们惛_javascript中获取Form控g的|在控件的变量中就能直接获得?/div><div>11. 使用ng-submit比在button上用ng-click要好一些。HTML的表单的提交有多U方式,比如在输入域中按回R键就?x)触发ng-submitQ而不?x)触发button的ng-click事g?/div><div>12. 在ng-model中,可以直接引用一个对?比如Q?lt;input type="text" ng-model="ctrl.user.name">Q而不需要事先在model中以self.user={}定义。在AngularJS中,使用?jin)ng-model的话QAngularJS在初始化数据l定的时候,自动创徏其中的对象和键倹{在刚才的例子中Q一旦用户开始在输入域中键入W一个字母,用户user׃(x)被自动创建?/div><div>13. 推荐使用相x据集中到一个对象的方式来进行数据绑定,比如Q用户名和密码,推荐使用Q?/div><div><span style="white-space:pre"> </span><input type="text" ng-model="ctrl.user.name"></div><div><span style="white-space:pre"> </span><input type="text" ng-model="ctrl.user.password"></div><div>而不是:(x)</div><div><span style="white-space:pre"> </span><input type="text" ng-model="ctrl.name"></div><div><span style="white-space:pre"> </span><input type="text" ng-model="ctrl.password"></div><div></div><img src ="http://www.aygfsteel.com/usherlight/aggbug/422713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心(j)水自?/a> 2015-02-03 19:36 <a href="http://www.aygfsteel.com/usherlight/archive/2015/02/03/422713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AngularJS的一些用方法和技巧(1Q?/title><link>http://www.aygfsteel.com/usherlight/archive/2015/02/01/422633.html</link><dc:creator>云自无心(j)水自?/dc:creator><author>云自无心(j)水自?/author><pubDate>Sun, 01 Feb 2015 11:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2015/02/01/422633.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/422633.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2015/02/01/422633.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/422633.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/422633.html</trackback:ping><description><![CDATA[<div>1. AngularJS的module函数有两U用法,</div> <div><span style="white-space:pre"> </span>a. 定义一个module, 需要传?个参敎ͼmodule('moduleName', []), W一个参数是新的module名称Q第二个参数是新module所依赖的module数组?/div> <div><span style="white-space:pre"> </span>b. 载入一个module, 只需?个参敎ͼmodule('moduleName'), 唯一的一个参数指定要载入的module名称?/div> <div>2. 使用controller函数来定义一个控制器(controller), 用ng-controller控制器l定到具体的HTMLlg上。定义控制器的controller函数也需?个参敎ͼW一个是控制器名UͼW二个参数同样也是一个数l,数组的最后一个元素就是controller本n的函敎ͼ前面的元素用字符串的形式指定光要的依赖V如果没有依赖项Q那只需要定义函数。比如:(x)</div> <div><span style="white-space:pre"> </span>angular.module('app1', [])</div> <div><span style="white-space:pre"> </span>.controller('mainControl', [function() {</div> <div><span style="white-space:pre"> </span>console.log('controller created.');</div> <div><span style="white-space:pre"> </span>}]);</div> <div>3. 在controller函数中用var定义的局部变量,在HTML中是不可见的?/div> <div>4. 推荐在controller函数中尽量避免直接引用this, 比较好的做法是用代理。原因是一个函C的this关键词在被外部调用的时候,是会(x)被覆盖掉的。这L(fng)话,在函数内部和外部的this?x)是完全不同两个对象?/div> <div>代理用法CZQ?/div> <div><span style="white-space:pre"> </span>angular.module('app1', [])</div> <div><span style="white-space:pre"> </span>.controller('mainControl', [function() {</div> <div><span style="white-space:pre"> </span>var self = this;</div> <div><span style="white-space:pre"> </span>self.message = 'Hello world';</div> <div><span style="white-space:pre"> </span>self.changeMessage = function() {</div> <div><span style="white-space:pre"> </span>self.message = 'Goodbye.';</div> <div><span style="white-space:pre"> </span>};</div> <div><span style="white-space:pre"> </span>}]);</div> <div>5. ng-bind与双大括L(fng)区别, ng-bind和{{}}可以说基本上是可以互相替换的Q但是也有区别。区别在于:(x)AngularJS在启动的时候就?x)执行ng-bind, 而{{}}的替换时间会(x)E晚一些。有可能发现面在加载的时候,双括可一闪而过地替换掉Q只在页面初ơ加载的时候发生)(j)。但是ng-bind没有这个问题?br /> 6. ng-cloak可以用于解决双括号闪现的问题?/div><img src ="http://www.aygfsteel.com/usherlight/aggbug/422633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心(j)水自?/a> 2015-02-01 19:19 <a href="http://www.aygfsteel.com/usherlight/archive/2015/02/01/422633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AngularJS的加载执行过E?/title><link>http://www.aygfsteel.com/usherlight/archive/2015/01/31/422619.html</link><dc:creator>云自无心(j)水自?/dc:creator><author>云自无心(j)水自?/author><pubDate>Sat, 31 Jan 2015 12:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/usherlight/archive/2015/01/31/422619.html</guid><wfw:comment>http://www.aygfsteel.com/usherlight/comments/422619.html</wfw:comment><comments>http://www.aygfsteel.com/usherlight/archive/2015/01/31/422619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/usherlight/comments/commentRss/422619.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/usherlight/services/trackbacks/422619.html</trackback:ping><description><![CDATA[<div></div><div>1. HTML面的加载,q会(x)触发加蝲面包含的所有JS (包括 AngularJS)</div><div>2. AngularJS启动Q搜L有的指o(h)(directive)</div><div>3. 扑ֈng-appQ搜d指定的模?Module)Qƈ其附加到ng-app所在的lg上?/div><div>4. AnguarJS遍历所有的子组Ӟ查找指o(h)和bind命o(h)</div><div>5. 每次发现ng-controller或者ng-repeart的时候,它会(x)创徏一个作用域(scope)Q这个作用域是lg的上下文。作用域指明?jin)每个DOMlg对函数、变量的讉K权?/div><div>6. AngularJS然后?x)添加对变量的监听器Qƈ监控每个变量的当前倹{一旦值发生变化,AngularJS?x)更新其在页面上的显C?/div><div>7. AngularJS优化?jin)检查变量的法Q它只会(x)在某些特D的事g触发Ӟ才会(x)L查数据的更新Q而不是简单地在后C停地轮询?/div><img src ="http://www.aygfsteel.com/usherlight/aggbug/422619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/usherlight/" target="_blank">云自无心(j)水自?/a> 2015-01-31 20:36 <a href="http://www.aygfsteel.com/usherlight/archive/2015/01/31/422619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ʶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">ױ</a>| <a href="http://" target="_blank">Ӵ</a>| <a href="http://" target="_blank">ξ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӱ</a>| <a href="http://" target="_blank">ʵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ů</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">뵺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͷ</a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">Ĭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">׿</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank">ߴ</a>| <a href="http://" target="_blank">˷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>