# زیرنویس فارسی ویدئوهای مقدمات AngularJS - قسمت سوم

زیرنویس‌های فارسی قسمت سوم را اینجا می‌توانید دریافت کنید. لیست سرفصل‌های قسمت سوم به شرح زیر است : 01. Introduction to Services 02. Demo - Creating Your First Custom Service 03. Demo - Another Custom

- Published: 2014-04-14
- Language: fa
- Tags: DNTips
- Canonical: https://sirwan.info/blog/fa/dntips-1751

---

> این نوشته نخستین بار در [دات‌نت تیپس](https://www.dntips.ir/post/1751) منتشر شده است.

<div class="postBody">زیرنویس‌های فارسی قسمت سوم را <a href="https://www.dntips.ir/file/projectfile?name=AngularJS-Fundamental--Fa-Subtitles-5ea8fcc77abf499e85a21eaca466ecdd.zip">اینجا</a> می‌توانید دریافت کنید.<div>لیست سرفصل‌های قسمت سوم به شرح زیر است :</div> <div> <div align="left" dir="ltr">
<pre language="CSharp" name="code">01. Introduction to Services&#10;02. Demo - Creating Your First Custom Service&#10;03. Demo - Another Custom Service Example&#10;04. Introduction to Built-In AngularJS Services&#10;05. Demo - Using the $http and $q Services Together&#10;06. Demo - Using the $rsource and $q Services&#10;07. Demo - Using the $anchorScroll Service&#10;08. Demo - Using the $cacheFactory Service&#10;09. Demo - Using the $compile Service&#10;10. Demo - Using the $parse Service&#10;11. Demo - Using the $locale Service&#10;12. Demo - Using the $timeout Service&#10;13. Demo - Using the $exceptionHandler Service&#10;14. Demo - Using the $filter Service&#10;15. Demo - Using the $cookieStore Service&#10;16. Overview of Less Common Services&#10;17. Suggested Exercises</pre>
 </div>
این قسمت به ساخت سرویس‌های سفارشی و همچنین چگونگی استفاده از سرویس‌های توکار انگولار می‌پردازد؛ در این قسمت تقریباً تمامی سرویس‌های موردنیاز جهت توسعه یک برنامه مبتنی بر انگولار شرح داده می‌شود. همچنین در آن به صورت عملی با سرویس‌ها آشنا می‌شوید و هر سرویسی که معرفی میشود مثال مربوط به آن ارائه شده است. به طور مثال در قسمت پیاده سازی سرویس‌های سفارشی مثال نمایش Gravatar با وارد کردن آدرس ایمیل کاربر مطرح می‌شود که در ادامه کد آن را مشاهده میکنید :</div> <div> <div align="left" dir="ltr">
<pre language="JScript" name="code">'use strict';&#10;&#10;eventsApp.factory('gravatarUrlBuilder', function() {&#10;return {&#10;buildGravatarUrl: function(email) {&#10;        // try angularjsdemo@gmail.com as an email&#10;            var defaultGravatarUrl = "http://www.gravatar.com/avatar/000?s=200";&#10;&#10;            var regex = /^(([^&lt;&gt;()[\]\\.,;:\s@\"]+(\.[^&lt;&gt;()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;&#10;            if (!regex.test(email))&#10;                return defaultGravatarUrl;&#10;&#10;            var MD5=function(s){function L(k,d){return(k&lt;&lt;d)|(k&gt;&gt;&gt;(32-d))}function K(G,k){var I,d,F,H,x;F=(G&amp;2147483648);H=(k&amp;2147483648);I=(G&amp;1073741824);d=(k&amp;1073741824);x=(G&amp;1073741823)+(k&amp;1073741823);if(I&amp;d){return(x^2147483648^F^H)}if(I|d){if(x&amp;1073741824){return(x^3221225472^F^H)}else{return(x^1073741824^F^H)}}else{return(x^F^H)}}function r(d,F,k){return(d&amp;F)|((~d)&amp;k)}function q(d,F,k){return(d&amp;k)|(F&amp;(~k))}function p(d,F,k){return(d^F^k)}function n(d,F,k){return(F^(d|(~k)))}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F)}function e(G){var Z;var F=G.length;var x=F+8;var k=(x-(x%64))/64;var I=(k+1)*16;var aa=Array(I-1);var d=0;var H=0;while(H&lt;F){Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=(aa[Z]|(G.charCodeAt(H)&lt;&lt;d));H++}Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=aa[Z]|(128&lt;&lt;d);aa[I-2]=F&lt;&lt;3;aa[I-1]=F&gt;&gt;&gt;29;return aa}function B(x){var k="",F="",G,d;for(d=0;d&lt;=3;d++){G=(x&gt;&gt;&gt;(d*8))&amp;255;F="0"+G.toString(16);k=k+F.substr(F.length-2,2)}return k}function J(k){k=k.replace(/rn/g,"n");var d="";for(var F=0;F&lt;k.length;F++){var x=k.charCodeAt(F);if(x&lt;128){d+=String.fromCharCode(x)}else{if((x&gt;127)&amp;&amp;(x&lt;2048)){d+=String.fromCharCode((x&gt;&gt;6)|192);d+=String.fromCharCode((x&amp;63)|128)}else{d+=String.fromCharCode((x&gt;&gt;12)|224);d+=String.fromCharCode(((x&gt;&gt;6)&amp;63)|128);d+=String.fromCharCode((x&amp;63)|128)}}}return d}var C=Array();var P,h,E,v,g,Y,X,W,V;var S=7,Q=12,N=17,M=22;var A=5,z=9,y=14,w=20;var o=4,m=11,l=16,j=23;var U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P&lt;C.length;P+=16){h=Y;E=X;v=W;g=V;Y=u(Y,X,W,V,C[P+0],S,3614090360);V=u(V,Y,X,W,C[P+1],Q,3905402710);W=u(W,V,Y,X,C[P+2],N,606105819);X=u(X,W,V,Y,C[P+3],M,3250441966);Y=u(Y,X,W,V,C[P+4],S,4118548399);V=u(V,Y,X,W,C[P+5],Q,1200080426);W=u(W,V,Y,X,C[P+6],N,2821735955);X=u(X,W,V,Y,C[P+7],M,4249261313);Y=u(Y,X,W,V,C[P+8],S,1770035416);V=u(V,Y,X,W,C[P+9],Q,2336552879);W=u(W,V,Y,X,C[P+10],N,4294925233);X=u(X,W,V,Y,C[P+11],M,2304563134);Y=u(Y,X,W,V,C[P+12],S,1804603682);V=u(V,Y,X,W,C[P+13],Q,4254626195);W=u(W,V,Y,X,C[P+14],N,2792965006);X=u(X,W,V,Y,C[P+15],M,1236535329);Y=f(Y,X,W,V,C[P+1],A,4129170786);V=f(V,Y,X,W,C[P+6],z,3225465664);W=f(W,V,Y,X,C[P+11],y,643717713);X=f(X,W,V,Y,C[P+0],w,3921069994);Y=f(Y,X,W,V,C[P+5],A,3593408605);V=f(V,Y,X,W,C[P+10],z,38016083);W=f(W,V,Y,X,C[P+15],y,3634488961);X=f(X,W,V,Y,C[P+4],w,3889429448);Y=f(Y,X,W,V,C[P+9],A,568446438);V=f(V,Y,X,W,C[P+14],z,3275163606);W=f(W,V,Y,X,C[P+3],y,4107603335);X=f(X,W,V,Y,C[P+8],w,1163531501);Y=f(Y,X,W,V,C[P+13],A,2850285829);V=f(V,Y,X,W,C[P+2],z,4243563512);W=f(W,V,Y,X,C[P+7],y,1735328473);X=f(X,W,V,Y,C[P+12],w,2368359562);Y=D(Y,X,W,V,C[P+5],o,4294588738);V=D(V,Y,X,W,C[P+8],m,2272392833);W=D(W,V,Y,X,C[P+11],l,1839030562);X=D(X,W,V,Y,C[P+14],j,4259657740);Y=D(Y,X,W,V,C[P+1],o,2763975236);V=D(V,Y,X,W,C[P+4],m,1272893353);W=D(W,V,Y,X,C[P+7],l,4139469664);X=D(X,W,V,Y,C[P+10],j,3200236656);Y=D(Y,X,W,V,C[P+13],o,681279174);V=D(V,Y,X,W,C[P+0],m,3936430074);W=D(W,V,Y,X,C[P+3],l,3572445317);X=D(X,W,V,Y,C[P+6],j,76029189);Y=D(Y,X,W,V,C[P+9],o,3654602809);V=D(V,Y,X,W,C[P+12],m,3873151461);W=D(W,V,Y,X,C[P+15],l,530742520);X=D(X,W,V,Y,C[P+2],j,3299628645);Y=t(Y,X,W,V,C[P+0],U,4096336452);V=t(V,Y,X,W,C[P+7],T,1126891415);W=t(W,V,Y,X,C[P+14],R,2878612391);X=t(X,W,V,Y,C[P+5],O,4237533241);Y=t(Y,X,W,V,C[P+12],U,1700485571);V=t(V,Y,X,W,C[P+3],T,2399980690);W=t(W,V,Y,X,C[P+10],R,4293915773);X=t(X,W,V,Y,C[P+1],O,2240044497);Y=t(Y,X,W,V,C[P+8],U,1873313359);V=t(V,Y,X,W,C[P+15],T,4264355552);W=t(W,V,Y,X,C[P+6],R,2734768916);X=t(X,W,V,Y,C[P+13],O,1309151649);Y=t(Y,X,W,V,C[P+4],U,4149444226);V=t(V,Y,X,W,C[P+11],T,3174756917);W=t(W,V,Y,X,C[P+2],R,718787259);X=t(X,W,V,Y,C[P+9],O,3951481745);Y=K(Y,h);X=K(X,E);W=K(W,v);V=K(V,g)}var i=B(Y)+B(X)+B(W)+B(V);return i.toLowerCase()};&#10;&#10;            var url = 'http://www.gravatar.com/avatar/' + MD5(email) + ".jpg?s=200&amp;r=g";&#10;            console.log(url);&#10;            return url;&#10;        }&#10;};&#10;});</pre>
 </div>
 اگر زیرنویس‌ها دارای اشکال هستند می‌توانید در <a href="https://www.dntips.ir/projects/details/17" style="line-height: 1.5em; font-size: 9pt;">این قسمت</a> فایل‌های اصلاح شده را مجدداً آپلود کنید.</div></div>
