तो मैं निर्देश, सेवाएं और नियंत्रकों के बारे में पढ़ रहा हूं। मुझे लगा जैसे मुझे पता चला कि वहां क्या चल रहा है। उदाहरण के लिए डोम हेरफेर एक निर्देश में होता है, एपीआई कॉल एक सेवा में होती है। तब मुझे एक मॉडल बनाने की जरूरत थी। मेरी मुट्ठी सोचा था कि यह एक निर्देश है, फिर मैंने एंगुलर यूआई को देखा और उन्होंने इसे एक सेवा के रूप में स्थापित किया है। मैं इसे एक सेवा के रूप में देखकर आश्चर्यचकित हुआ। क्या यह करने का सही तरीका है, या यह माना जाता है और विरोधी पैटर्न है? मैंने पढ़ा कि सीखने के दौरान कोणीय यूआई एक अच्छी जगह है, लेकिन मुझे यकीन नहीं है? एक मॉडल अधिक भ्रमित है तो मुझे उम्मीद है।Angularjs में एक मॉडल एक सेवा या निर्देश होना चाहिए?
उत्तर
कोणीय में सामान्य नियम यह है कि डीओएम हेरफेर केवल निर्देशों के भीतर ही होना चाहिए, और अधिकांश समय लागू होता है। लेकिन कुछ स्थितियां हैं जहां एक घोषणात्मक दृष्टिकोण कम से कम कहने के लिए महसूस करता है, क्योंकि उन परिस्थितियों में आंतरिक रूप से अनिवार्य हैं। कुछ नामों के लिए मॉडल और कस्टम अलर्ट दो उदाहरण हैं।
उदाहरण देना करने के मैं क्या कह रहा हूँ, इस उदाहरण a similar question से लिया पर एक नज़र डालें मैं कुछ समय पहले उत्तर दिया:
पहल दृष्टिकोण
app.controller('Ctrl', function($scope, $dialog) {
$scope.doSomething = function() {
$dialog.dialog().open().then(function(result) {
if (result === 'OK') {
// Process OK
}
else {
// Process anything else
}
});
}
});
दिन AngularUI के $modal
था में वापस $dialog
कहा जाता है।
घोषणात्मक दृष्टिकोण
<dialog visible="dialogVisible" callback="dialogCallback()"></dialog>
...
app.controller('Ctrl', function($scope) {
$scope.doSomething = function() {
$scope.dialogVisible = true;
}
$scope.dialogCallback = function(result) {
if (result === 'OK') {
// Process OK
}
else {
// Process anything else
}
}
});
दूसरा दृष्टिकोण लिखने के लिए अजीब है और यह कोड के प्रवाह को तोड़ता है। यह एक गोल छेद में एक वर्ग छेद फिट करने की कोशिश की तरह है।
आईएमओ डीओएम हेरफेर केवल एक निर्देश में होता है कथन एक कठिन नियम की तुलना में एक (बहुत) मजबूत सिफारिश की तरह है। यह इतने लोग मौजूद हैं - विशेष रूप से कोणीय के लिए नवागंतुक - सेवाओं और नियंत्रकों के भीतर से डीओएम तक पहुंचने से बचें।
मेरे पास यह वही प्रश्न था जब मुझे हमारे कोड को पुन: सक्रिय करने की आवश्यकता थी, जिसमें आवेदन में अधिक संवाद की अनुमति थी। हम वर्तमान में Angularjs 1.6 का उपयोग कर रहे हैं।
मैंने पाया कि आप प्रत्येक टेम्पलेट में निर्देश डाल सकते हैं और फिर मोडल को प्रदर्शित/छुपाने के लिए एनजी-शो और एनजी-छुपा का उपयोग कर सकते हैं। हालांकि, डीओएम मैनिपुलेशन के लिए निर्देशों का उपयोग करते समय एंगुलरजेस में एक सम्मेलन है, जैसा कि पहले से ही उल्लेख किया गया है, इस उपयोग के मामले में मोडल विंडोज़ के लिए निर्देश नियंत्रक और मोडल निर्देश के बीच एक तंग युग्मन बनाता है।
इस उपयोग मामले में किसी सेवा का उपयोग करना एक स्वीकार्य विचलन है, क्योंकि डीओएम में मोडल इंजेक्ट करने के लिए सेवा का उपयोग करके, यह हमेशा पृष्ठ पर होने वाले मोडल निर्देश के बजाय आवश्यकतानुसार किया जाता है, जिससे यह दृष्टिकोण अधिक गतिशील होता है और टेम्पलेट के साथ युग्मन को कम कर देता है।
एक और सत्यापन के रूप में, मैंने पाया कि कोणीय यूआई टीम मोडल सेवा बनाने के लिए एक समान दृष्टिकोण का उपयोग करती है: $uibModal।
- 1. निर्देश के साथ एक AngularJS एनजी नहीं होना चाहिए?
- 2. $ एक सेवा चर या $ AngularJS
- 3. क्या एक कोणीय सेवा राज्य होना चाहिए?
- 4. AngularJS में एक सेवा
- 5. कैसे एक AngularJS निर्देश में एक नियंत्रक
- 6. AngularJS: एक निर्देश
- 7. AngularJS - एक मॉडल के रूप में एक सेवा का उपयोग,
- 8. Angularjs में प्रति दृश्य एक नियंत्रक होना चाहिए?
- 9. क्या एक दृश्य मॉडल में तर्क होना चाहिए?
- 10. HttpContext.Current एक डब्ल्यूसीएफ सेवा में शून्य होना चाहिए?
- 11. एक विधि स्थिर होना चाहिए?
- 12. लेखन त्रुटि: पूर्णांक() तर्क एक स्ट्रिंग या एक नंबर, होना चाहिए न कि 'मॉडल उदाहरण'
- 13. AngularJS: निर्देश
- 14. सी # में मेरा सामान्य होना चाहिए। लॉगिंग लॉगर एक उदाहरण सदस्य या स्थैतिक होना चाहिए?
- 15. AngularJS कस्टम सत्यापन निर्देश
- 16. angularjs में एक मॉडल पर श्रोता जोड़ना
- 17. क्या उपयोगकर्ता का प्रोफ़ाइल एक अलग मॉडल होना चाहिए?
- 18. एक स्विच अभिव्यक्ति या मामले लेबल bool (या ...) होना चाहिए
- 19. AngularJS निर्देश
- 20. AngularJS में HTML में निर्देश डालने?
- 21. AngularJS - एक सेवा ऑब्जेक्ट बनाना
- 22. प्रत्येक गतिविधि में एक लेआउट होना चाहिए?
- 23. angularjs में गतिशील निर्देश
- 24. AngularJS निर्देश
- 25. Jquery Timepicker angularjs निर्देश
- 26. प्राधिकरण मॉडल या नियंत्रक का हिस्सा होना चाहिए?
- 27. AngularJS $ खिड़की घड़ी निर्देश
- 28. कौन सी परत को एक मॉडल मॉडल बनाना चाहिए?
- 29. AngularJS में एक ng शामिल निर्देश के लिए मॉडल निर्दिष्ट करने के लिए कैसे?
- 30. AngularJS: बल फिर से प्रतिपादन/पूर्ण ताज़ा एक निर्देश टेम्पलेट
मैं देख सकता हूं कि यह निर्देश है, आपने इसे सेवा के रूप में कहाँ देखा? – ABOS
@ABOS [कोड] में (https://github.com/angular-ui/bootstrap/blob/master/src/modal/modal.js) आप देख सकते हैं कि 2 कारखानों को परिभाषित किया गया है (पहली चीज़ सहित , शायद ओपी क्या सोच रहा है?), लेकिन कई निर्देश भी परिभाषित किए गए हैं। –
@ABOS इसके अलावा, यह वास्तव में समझ में आता है कि यह एक सेवा है।आप जेएस कोड में अपना मोडल परिभाषित करते हैं और बस कुछ एचटीएमएल (आमतौर पर निर्देश के रूप में) में गुजरते हैं, इसलिए हाँ, इसे एक सेवा (सहायक निर्देशों के साथ) के रूप में परिभाषित किया जाता है। –