2016-08-11 13 views
12

का उपयोग कर फ़ाइल हैशिंग मैं वर्तमान में angularAMD पर आधारित एक Angualar जेएस प्रोजेक्ट पर काम कर रहा हूं।AngularJS

लिंक: http://marcoslin.github.io/angularAMD/#/home

यहाँ हम नहीं नियंत्रकों द्वारा की जरूरत है और सभी फ़ाइलों में केवल आवश्यक निर्भर फ़ाइलों में शामिल हैं।

उदाहरण के लिए।

define(['angularAMD', 'common/services/service1', 'module1/services/service2',], function (angularAMD) { 
    'use strict'; 

    angularAMD.controller('abcController', function ($scope, service1, service2) { 

       // controller code goes here 
    } 

मैं ग्रंट हैशिंग लेकिन
ग्रंट की कोशिश की hashing प्रदान करता है, लेकिन है टुकड़ों में बंटी फ़ाइलों परिवर्तन के स्थान।

यह व्यक्तिगत नियंत्रक के अंदर फ़ाइलों का पथ नहीं बदलता है जिसके परिणामस्वरूप एप्लिकेशन चलाने में विफल रहता है। यानी service1, service2

प्रश्न
अगर वहाँ फ़ाइलों हैश करने के लिए जब हम एक नई फ़ाइलें शामिल एक तरीका था मैं सोच रहा था?

क्या इस समस्या को हल करने का कोई अन्य तरीका है?

अग्रिम में धन्यवाद

+0

कृपया Service1 और Service2 –

+0

@steve सेवा के लिए स्रोत का हिस्सा 1 और सेवा 2 मुझे लगता है कि बस एक समस्या डालने के लिए यह किसी भी जेएस फ़ाइल हो सकता है जो नियंत्रक द्वारा उपयोग किया जा रहा है। – Abhimanyu

+0

मेरा विचार यह है कि सेवा 1 और 2 फ़ाइलें ठीक से सेटअप नहीं हैं; यानी वे नियंत्रक –

उत्तर

2

आप अपने मॉड्यूल कैसे सेट अप करते हैं। आपका main.js इस

'use strict'; 
require.config({ 
    waitSeconds: 0, 
    urlArgs: "bust=v1.0.0", 
    paths: { 
     bootstrap: 'Scripts/bootstrap.min', 
     jquery: 'Scripts/jquery-1.10.2.min', 
     angular: 'Scripts/angular.min', 
     angularRoute: 'Scripts/angular-route.min', 
     angularAMD: 'Scripts/angularAMD.min', 
     app: 'ngApp/app', 
     appConfig: 'ngApp/app.config', 

     /*register Services - Start*/ 
     service1: 'ngServices/Common/service1', 
     service2: 'ngServices/module/service2', 
     /*register Services - End*/ 

     /*register Filters - Start*/ 

     /*register Filters - End*/ 

     /*register Controllers - Start*/ 

     /*register Controllers - End*/ 



    }, 

    // specifying library dependencies 
    shim: { 
     'bootstrap':{ deps:['jquery']}, 
     'angular': { deps: ['jquery'], exports: 'angular' }, 
     'angularRoute': { deps: ['angular'] }, 
     'angularAMD': { deps: ['angular'] } 
    }, 

    // define application bootstrap 
    deps: ['app'] 
}); 

की तरह है और अपने index.html में लग सकता है

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
</head> 

<body data-ng-controller="appController as appCtrl" ng-cloak> 
     <div > 
       <ng-view></ng-view> 
     </div> 
    </div> 
    <script data-main="main" src="Scripts/require.js"></script> 
</body> 
</html> 

और अपने नियंत्रकों में

'use strict'; 
define(['angularAMD', 'service1', 'service2'], 
function (angularAMD) { 

    angularAMD.controller('abcController', ['service1', 'service2', 
    function (service1, service1) { 
     var self = this, 
     // your code 
    }]); 
}); 
+0

लेकिन फिर मॉड्यूल के आधार पर फ़ाइल लोड करने का विचार समझ में नहीं आता है। चूंकि main1js में service1 और service2 सहित फ़ाइल लोड हो जाएगी। सेवा 1: 'एनजी सर्विसेज/कॉमन/सर्विस 1', सेवा 2: 'एनजी सर्विसेज/मॉड्यूल/सर्विस 2', – Abhimanyu

+0

@ एभिमन्यू। नहीं, यह गतिशील रूप से लोड होगा। हम main.js. में service1 या service2 के लिए पथ निर्दिष्ट कर रहे हैं। फ़ाइल केवल तब लोड होगी जब हम ['service1' ..] को angularAMD ' –

+0

द्वारा परिभाषित करते हैं, ओह हाँ बिंदु को याद करते हैं, लेकिन एक बड़ी परियोजना में, main.js में सभी फ़ाइल पथ सेट करना समझ में आता है ?, क्योंकि यह main.js को प्रदूषित करेगा , क्या हमारे पास इसके लिए कोई अन्य विचार है। – Abhimanyu