AngularJS - Google से गतिशील वेब अनुप्रयोगों के लिए एक रूपरेखा

एंगुलरजेएस उन डेवलपर्स के लिए बनाया गया था जो मानते हैं कि यूआई बनाने के लिए एक घोषणात्मक शैली बेहतर है, और व्यापार तर्क के लिए एक जरूरी है।

झेन कोणीय




AngularJS एक व्यापक ढांचा है। मानक पैकेज में, यह निम्नलिखित विशेषताएं प्रदान करता है:


AngularJS Google कर्मचारियों द्वारा विकसित किया गया है और इसका उपयोग कम से कम एक Google सेवा - DoubleClick में किया जाता है



उदाहरण


एक साधारण टूडू-कैबिनेट
<div ng-app> <h2>Todo</h2> <div ng-controller="TodoCtrl"> <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">archive</a> ] <ul class="unstyled"> <li ng-repeat="todo in todos"> <input type="checkbox" ng-model="todo.done"> <span class="done-{{todo.done}}">{{todo.text}}</span> </li> </ul> <form ng-submit="addTodo()"> <input type="text" ng-model="todoText" size="30" placeholder="add new todo here"> <input class="btn-primary" type="submit" value="add"> </form> </div> </div> 

 function TodoCtrl($scope) { $scope.todos = [ {text:'learn angular', done:true}, {text:'build an angular app', done:false}]; $scope.addTodo = function() { $scope.todos.push({text:$scope.todoText, done:false}); $scope.todoText = ''; }; $scope.remaining = function() { var count = 0; angular.forEach($scope.todos, function(todo) { count += todo.done ? 0 : 1; }); return count; }; $scope.archive = function() { var oldTodos = $scope.todos; $scope.todos = []; angular.forEach(oldTodos, function(todo) { if (!todo.done) $scope.todos.push(todo); }); }; } 

कार्रवाई में, आप angularjs.org होमपेज देख सकते हैं। कई उदाहरण भी वहां प्रस्तुत किए गए हैं:

अधिक उदाहरण:


AngularJS अवधारणाओं


दिशा निर्देशों

एंगुलरजेएस का लगभग संपूर्ण घोषणात्मक भाग निर्देशों पर आधारित है। वे HTML सिंटैक्स को समृद्ध करने के लिए उपयोग किए जाते हैं। DOM के संकलन के दौरान, निर्देशों को HTML से लिया जाता है और निष्पादित किया जाता है। निर्देश कुछ नया व्यवहार जोड़ सकते हैं और / या DOM को संशोधित कर सकते हैं। मानक पैकेज में वेब अनुप्रयोगों के निर्माण के लिए काफी बड़ी संख्या में निर्देश शामिल हैं। लेकिन एक प्रमुख विशेषता उनके स्वयं के निर्देशों को विकसित करने की क्षमता है, जिससे एचटीएमएल को डीएसएल में बदल दिया जा सकता है।

निर्देशों का नाम लोकेमसेलकैसे का उपयोग करके रखा गया है, उदाहरण के लिए, ngBind। उपयोग करते समय, निर्देश को निचले मामले में विभाजक के रूप में विशेष वर्णों में से एक का उपयोग करके नाम दिया जाना चाहिए : , - , या _ । वैकल्पिक रूप से, आप वैध कोड प्राप्त करने के लिए x- या data- उपसर्गों का उपयोग कर सकते हैं। उदाहरण: ng:bind , ng-bind , ng_bind , x-ng-bind और data-ng-bind

निर्देशों का उपयोग एक तत्व के रूप में किया जा सकता है ( <my-directive></my-directive> ), एक विशेषता (), एक वर्ग में (), या एक टिप्पणी में ()। यह इस बात पर निर्भर करता है कि एक विशेष निर्देश कैसे विकसित किया गया था।

डेवलपर के मार्गदर्शिका में निर्देशों के बारे में और पढ़ें

स्कोप-s

स्कोप एप्लिकेशन में मॉडल से संबंधित वस्तु है। यह अभिव्यक्ति के लिए निष्पादन संदर्भ है। डोम के समान एक पदानुक्रमित संरचना में स्कोप की व्यवस्था की जाती है। इसी समय, वे अपने मूल क्षेत्र से गुण प्राप्त करते हैं।

नियंत्रक और दृश्य के बीच स्कोप गोंद की तरह होते हैं। टेम्पलेट बाइंडिंग चरण को निष्पादित करने की प्रक्रिया में, निर्देशों ने दायरे के भीतर अभिव्यक्तियों के लिए घड़ी ( $watch ) निर्धारित की। $watch एक अद्यतन मूल्य या कुछ अन्य कार्रवाई को प्रदर्शित करने के लिए परिवर्तनों का जवाब देने की क्षमता का निर्देश देती है। दोनों नियंत्रकों और निर्देशों में गुंजाइश का संदर्भ है, लेकिन एक दूसरे के संदर्भ नहीं हैं। इसलिए नियंत्रक निर्देशों से और DOM से अलग-थलग हैं। इसके कारण, एप्लिकेशन का परीक्षण करने की क्षमता बढ़ जाती है।

डेवलपर के मार्गदर्शिका में गुंजाइश के बारे में अधिक पढ़ें

सेवाएं

सेवाएं सिंगलटन एस हैं जो एक विशिष्ट कार्य करते हैं जो सभी के लिए या एक विशिष्ट वेब एप्लिकेशन के लिए सामान्य है। उदाहरण के लिए, $ http सेवा , जो XMLHttpRequest पर एक आवरण है। अन्य सेवाओं के कुछ उदाहरण (पूरी सूची के लिए दस्तावेज देखें):


किसी सेवा का उपयोग करने के लिए, आपको इसे नियंत्रक, अन्य सेवा, निर्देश आदि के लिए निर्भरता के रूप में निर्दिष्ट करना होगा। एंगुलरजेएस बाकी की देखभाल करता है - बनाना, निर्भरता का समाधान करना, आदि।

डेवलपर की मार्गदर्शिका में सेवाओं के बारे में अधिक पढ़ें

फिल्टर

फ़िल्टर को उपयोगकर्ता को प्रदर्शित करने से पहले डेटा को प्रारूपित करने के लिए डिज़ाइन किया जाता है, साथ ही साथ संग्रह में आइटमों को फ़िल्टर किया जाता है। फिल्टर के उदाहरण (एक पूरी सूची प्रलेखन में पाई जा सकती है): मुद्रा , तिथि , क्रम , अपरकेस । फिल्टर का उपयोग करना बहुत पारंपरिक है: {{ expression | filter1 | filter2 }} {{ expression | filter1 | filter2 }}

डेवलपर की मार्गदर्शिका में फ़िल्टर के बारे में और पढ़ें

मॉड्यूल

AngularJS में एप्लिकेशन का प्राथमिक निष्पादन योग्य तरीका नहीं है। इसके बजाय, मॉड्यूल यह बताता है कि आवेदन कैसे डाउनलोड किया जाना चाहिए। इसके कारण, उदाहरण के लिए, परीक्षण स्क्रिप्ट लिखते समय, आप अतिरिक्त मॉड्यूल लोड कर सकते हैं जो कुछ सेटिंग्स को ओवरराइड करेगा, जिससे जटिल (एंड-टू-एंड) परीक्षण की सुविधा होगी।

डेवलपर की मार्गदर्शिका में मॉड्यूल के बारे में और पढ़ें

परीक्षण

जैसा कि डेवलपर्स लिखते हैं, परीक्षण के लिए उन्होंने AngularJS में बहुत कुछ किया, इसलिए यदि आप अपने आवेदन का परीक्षण नहीं करते हैं तो कुछ भी आपको बहाना नहीं दे सकता :)

परीक्षण e2e परिदृश्य का एक उदाहरण:
 describe('Buzz Client', function() { it('should filter results', function() { input('user').enter('jacksparrow'); element(':button').click(); expect(repeater('ul li').count()).toEqual(10); input('filterText').enter('Bees'); expect(repeater('ul li').count()).toEqual(1); }); }); 


यूनिट के परीक्षण और डेवलपर के गाइड में ई 2 ई परीक्षण के बारे में और पढ़ें।

अंगुलरजेएस बतरंग


यह Chrome के लिए एक एक्सटेंशन है जो AngularJS एप्लिकेशन को डीबग करना आसान बनाता है। यह आपको स्कोप्स के पदानुक्रम के साथ काम करने की अनुमति देता है, एक आवेदन को प्रोफाइल करना संभव बनाता है, सेवाओं के बीच निर्भरता की कल्पना करता है, तत्वों के पृष्ठ पर स्कोप की सामग्री को प्रदर्शित करता है, आपको कंसोल से स्कोप में मानों को प्रदर्शित करने और बदलने की अनुमति देता है। गीथुब पर पृष्ठ पर अच्छा पाठ विवरण। Youtube पर अच्छा वीडियो

और क्या पढ़ना है


Source: https://habr.com/ru/post/In149060/


All Articles