[संपादित करें] मैं एक लेख अपने ब्लॉग पर लिखा है अधिक जानकारी के में चीजों को समझाने के लिए:
read it on sam-dev.net और अब आप read part II कोड नमूने के साथ कर सकते हैं,।
मैं अपने स्वयं के प्रश्न का उत्तर दूंगा। ऐसा नहीं है क्योंकि मुझे लगता है कि यह सबसे अच्छा तरीका है, लेकिन सिर्फ इसलिए कि मैंने इसे जाने का फैसला किया है।
यह मैं कैसे फ़ोल्डरों
- एप्लिकेशन
- businessModule
- नियंत्रकों
- index.js में अपने व्यवसाय मॉड्यूल विभाजित है
- firstCtrl.js
012,
- secondCtrl।js
- निर्देशों
- सेवाओं
- विचारों
- फिल्टर
- anotherBusinessModule
- साझा
- app.js
- index.html
प्रत्येक मॉड्यूल नियंत्रकों, निर्देशों, आदि के लिए अपने स्वयं के फ़ोल्डर संरचना ...
प्रत्येक फ़ोल्डर एक index.js फ़ाइल है और उसके बाद प्रत्येक नियंत्रक, प्रत्येक निर्देश, आदि को अलग करती है के लिए अन्य फ़ाइलों है ..
index.js फ़ाइल में मॉड्यूल की परिभाषा शामिल है। उदाहरण के लिए व्यवसाय के नियंत्रकों के लिए उपरोक्त मॉड्यूल:
angular.module('myCompany.businessModule.controllers', []);
यहां कोई निर्भरता नहीं है, लेकिन कोई भी हो सकता है।
फिर firstCtrl.js में, मुझे लगता है कि मॉड्यूल पुन: उपयोग और इसे करने के लिए नियंत्रक जोड़ सकते हैं:
angular.module('myCompany.businessModule.controllers').controller('firstCtrl',
function(){
});
फिर app.js उन्हें निर्भरता को जोड़कर सभी मॉड्यूल है कि मैं अपने आवेदन के लिए चाहते एकत्रित करता है सरणी।
angular.module('myApp', ['myCompany.businessModule', 'myCompany.anotherBusinessModule']);
साझा फ़ोल्डर में निर्देश और अन्य चीजें हैं जो किसी व्यापार मॉड्यूल के लिए विशिष्ट नहीं हैं और जिन्हें कहीं भी पुन: उपयोग किया जा सकता है।
फिर से, मुझे नहीं पता कि यह सबसे अच्छा तरीका है, लेकिन यह निश्चित रूप से मेरे लिए काम करता है। शायद यह अन्य लोगों को प्रेरित कर सकता है।
संपादित
रूप index.js फ़ाइलों मॉड्यूल में घोषणा-पत्र, वे किसी भी अन्य अनुप्रयोग स्क्रिप्ट से पहले html पृष्ठ में संदर्भित किया जाना चाहिए। ऐसा करने के लिए, मैं का उपयोग किया है ASP.NET MVC 4 की IBundleOrderer:
var bundle = new ScriptBundle("~/bundles/app") { Orderer = new AsIsBundleOrderer() };
bundles.Add(bundle.IncludeDirectory("~/app", "*.js", true));
public class AsIsBundleOrderer : IBundleOrderer
{
public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
files = files.OrderBy(x => x.Name == "index.js" ? 0 : 1);
return files;
}
}
यदि आपके पास एकाधिक ऐप्स नहीं हैं, तो आपको एक बड़ा ऐप बनाने की आवश्यकता नहीं है, केवल प्रति व्यवसाय एक ऐप बनाएं। एक ऐप अन्य ऐप्स सेवाओं, नियंत्रकों और निर्देश का पुन: उपयोग कर सकता है। याद रखें कि एक "वेब ऐप" अभी भी एक वेब पेज है, इससे कोई फर्क नहीं पड़ता कि यह डेस्कटॉप सॉफ़्टवेयर की तरह नहीं है। – mpm
मैंने खुद को गलत तरीके से व्यक्त किया हो सकता है। मेरे पास केवल एक ऐप है, लेकिन यह बड़ा है। और मैं इसे विभिन्न व्यावसायिक मॉड्यूल में विभाजित करना चाहता हूं। प्रत्येक व्यापार मॉड्यूल में अपने स्वयं के विचार, निर्देश, नियंत्रक इत्यादि का सेट होगा ... लेकिन अंत में, यह एक ही वेब एप्लिकेशन है, केवल एक प्रविष्टि बिंदु के साथ। क्या यह एक अच्छा दृष्टिकोण है, और मुझे अपना कोड कैसे व्यवस्थित करना चाहिए? – Sam
कोई फर्क नहीं पड़ता, आपकी इच्छा के अनुसार फ़ाइलों को विभाजित करने के लिए आप पर निर्भर है। कुछ लोग प्रति फ़ाइल, नियंत्रक या निर्देश 1 फ़ाइल का उपयोग करते हैं, कुछ लोग प्रति 'फीचर' को विभाजित करते हैं, वास्तव में निर्भरता इंजेक्शन की वजह से कोई फर्क नहीं पड़ता। आप कई फाइलों, आदि में एक मॉड्यूल फिर से खोल सकते हैं ... वास्तव में यह स्वाद का मामला है। अंत में आपको अपने एचटीएमएल में अपनी सभी जेएस फाइलों की ज़रूरत है। मेरे पास व्यक्तिगत रूप से बड़े ऐप्स के लिए 1 फ़ाइल प्रति प्रकार (सेवाओं के लिए 1 फ़ाइल, निर्देशों के लिए 1, नियंत्रकों के लिए 1) है। – mpm