कोणीय कोड संरचना का सर्वोत्तम अभ्यास

समस्या यह है कि मुझे नहीं पता कि यह Angular.JS में एक अलग .js फ़ाइल में प्रत्येक अलग कोड इकाई (नियंत्रक, मॉडल, सेवा इत्यादि) रखने के लिए व्यवहार्य है या नहीं। मैं फिलहाल इस तरह अपना समाधान लागू करने की कोशिश कर रहा हूं, लेकिन यह सही नहीं लगता है।

उदाहरण:

step.js सामग्री (मॉडल प्रोटोटाइप):

(function() {
    var moduleStep = angular.module('step', []);
    moduleStep.config(function() {
        var defaults = {
            title: "",
            enabled: true,
            active: false,
            visited: false,
            viewUrl: "/clientTemplates/notification/step1.html",
            model: {}
        };

        /**
         * @param {string} title
         * @param {string} viewUrl
         * @param {object} model   [optional]
         * @constructor
         */
        moduleStep.Step = function(title, viewUrl, model) {
            _.extend(this, defaults);
            this.title = title;
            this.viewUrl = viewUrl;
            _.isUndefined(model) && (this.model = model);
        };
        var prot = moduleStep.Step.prototype;

        /**
         * @returns {boolean}
         */
        prot.isValid = function() {
            return true;
        }
    });
}());

masterController.js सामग्री (नियंत्रक):

(function() {
    var moduleController = angular.module('masterController', [
        'ui.bootstrap',
        'step',
        'config'
    ]);

    moduleController.config(function() {
            var Step = angular.module('step').Step;

            /**
             * @type {Array}
             */
            $scope.steps = [
                new Step("step 1", "/clientTemplates/notification/step1.html"),
                new Step("step 2", "/clientTemplates/notification/step2.html", {test2: 2}),
                new Step("step 3", "/clientTemplates/notification/step3.html", {test: 1})
            ];
        };
        controller.$inject = ['$scope'];

        moduleController.masterController = controller;
        console.log(moduleController.masterController);
    });
}());

setupMaster.js (एप्लिकेशन मॉड्यूल)

(function() {
    var app = angular.module('setupMaster', [
//    'ngRoute',
        //controllers
        'masterController',
        'config'
    ]);


    /**
     * Конфигурационная функция для провайдеров служб приложения
     */
    app.config(['$controllerProvider', '$httpProvider', function($controllerProvider, $httpProvider) {
        $controllerProvider.register('MasterController', angular.module('masterController').masterController);
    }]);
}());

http://docs.angularjs.org/guide/module

"अनुशंसित सेटअप" ब्लॉक में यह लिखा गया है कि सेवाओं, निर्देशों, फ़िल्टर और एप्लिकेशन परत के लिए 4 बड़े मॉड्यूल का उपयोग किया जाना चाहिए। नियंत्रकों या मॉडल कारखानों/प्रोटोटाइप के बारे में क्या?

हो सकता है कि यह सिर्फ मुझे बेवकूफ है या कोणीय के प्रतिमान के साथ संगत नहीं है, लेकिन कोणीय में मॉड्यूल और इंजेक्टर सिस्टम थोड़ा अधिक इंजीनियर और काउंटर-अंतर्ज्ञानी प्रतीत होता है। हालांकि मुझे वास्तव में कॉलबैक के बजाय कोणीय के 2-तरफा डेटा बाध्यकारी और गंदा-जांच पसंद है।

0
@ स्टीवी, धन्यवाद, लेकिन कोणीय बीज बड़े अनुप्रयोगों में वास्तविक समस्याओं को हल नहीं करता है। वहां 4 जेएस-फाइलों का उपयोग किया जाता है, जैसा कि मेरे प्रश्न में लिंक किए गए "मॉड्यूल" मैनुअल में इसकी अनुशंसा की जाती है। क्या यह ठीक है, अगर बहुत सारी संस्थाओं के लिए केवल 4 स्रोत फाइलें हैं? क्या यह गंदा नहीं है?
जोड़ा लेखक sp-niemand, स्रोत
Google "कोणीय बीज" और उदाहरणों के लिए चारों ओर देखो।
जोड़ा लेखक Stewie, स्रोत
खैर, मैं विशेष रूप से कोणीय-बीज का जिक्र नहीं कर रहा था, लेकिन अन्य अन्य बीजों के लिए भी हो सकता है साथ ही मिला। बहुत कुछ है
जोड़ा लेखक Stewie, स्रोत
एक यमन जनरेटर का उपयोग करें, मुझे npmjs.org/package/generator-cg-angular पसंद है । यह वास्तव में फ़ाइल संरचना इत्यादि को सॉर्ट करने में आपकी सहायता करता है।
जोड़ा लेखक Anders Bornholm, स्रोत

2 उत्तर

I've been trying to find best practices and justifications over reasons. In addition to reading angular docs, other article.. I found JohnPapa's description and in-depth explanation gives a little more insight of why's and why-not's, do's and don'ts. Read it here

दूसरों की तरह सुझाव दिया गया है, चेकआउट कोणीय-बीज और अन्य एनजी जेनरेटर आदि करें। आखिरकार, यह वह जगह है जहां आप सही अभ्यासों के साथ सहज महसूस करते हैं जो समय के साथ विकसित होते हैं।

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

बस साझा करने के लिए ..

0
जोड़ा

मैं w11k फैब्स के साथ काम कर रहा हूं जो लाइवरेलोड/जेशिंट/एसएएस, कम/परीक्षण/ngannotate जैसी चीजों के साथ एक बुनियादी गड़बड़ी सेटअप है ...

सेटअप दृश्य/मार्ग उन्मुख है। विचार/मार्ग एक पदानुक्रमित पत्थर संरचना में हैं। प्रत्येक दृश्य/मार्ग के लिए एक नया मॉड्यूल और ctrl फ़ाइल। fabs उन्हें आपकी अनुक्रमणिका फ़ाइल में जोड़ने के लिए संभालती है। चूंकि सेवा का उपयोग कई विचारों में किया जाता है, इसलिए वे एक अलग फ़ोल्डर में संग्रहीत होते हैं।

यदि आप अपनी परियोजना को "गड़बड़ाना" करते हैं तो सब कुछ 1 फ़ाइल में छोटा हो जाता है।

try: https://www.npmjs.com/package/fabs

0
जोड़ा