यह कोड एक फाइल में है, जिसे मार्ग.जेएस कहा जाता है
निम्नलिखित ने मेरे लिए काम नहीं किया:
var scripts = document.getElementsByTagName("script")
var currentScriptPath = scripts[scripts.length-1].src;
var baseUrl = currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/') + 1);
निम्नलिखित ने किया:
var bu2 = document.querySelector("script[src$='routes.js']");
currentScriptPath = bu2.src;
baseUrl = currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/') + 1);
मेरा परीक्षण आलसी लोड कोणीय की आवश्यकता का उपयोग करने के बारे में निम्नलिखित ब्लॉग पर आधारित है:
http://ify.io/lazy-loading-in-angularjs/
आवश्यकता होती है। एक आवश्यकता होती है
आवश्यकताकॉन्फ़िग एक कोणीय app.js भूल जाता है
कोणीय app.js मेरे मार्गों को भूल जाते हैं। js
मैं एक ही कोड एक revel वेब फ्रेमवर्क और asp.net mvc द्वारा परोसा जा रहा था। Revel document.getElementsByTagName ("स्क्रिप्ट") ने बूटस्ट्रैप js फ़ाइल की आवश्यकता के लिए एक पथ का निर्माण किया और मेरे मार्गों की नहीं। js। ASP.NET MVC में यह विज़ुअल स्टूडियो के इंजेक्ट किए गए ब्राउज़र लिंक स्क्रिप्ट तत्व के लिए एक पथ का उत्पादन करता है जिसे डिबगिंग सत्र के दौरान वहां रखा जाता है।
यह मेरा काम करने का मार्ग है। जेएस कोड:
define([], function()
{
var scripts = document.getElementsByTagName("script");
var currentScriptPath = scripts[scripts.length-1].src;
console.log("currentScriptPath:"+currentScriptPath);
var baseUrl = currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/') + 1);
console.log("baseUrl:"+baseUrl);
var bu2 = document.querySelector("script[src$='routes.js']");
currentScriptPath = bu2.src;
console.log("bu2:"+bu2);
console.log("src:"+bu2.src);
baseUrl = currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/') + 1);
console.log("baseUrl:"+baseUrl);
return {
defaultRoutePath: '/',
routes: {
'/': {
templateUrl: baseUrl + 'views/home.html',
dependencies: [
'controllers/HomeViewController',
'directives/app-style'
]
},
'/about/:person': {
templateUrl: baseUrl + 'views/about.html',
dependencies: [
'controllers/AboutViewController',
'directives/app-color'
]
},
'/contact': {
templateUrl: baseUrl + 'views/contact.html',
dependencies: [
'controllers/ContactViewController',
'directives/app-color',
'directives/app-style'
]
}
}
};
});
Revel से चलने पर यह मेरा कंसोल आउटपुट है।
currentScriptPath:http:
baseUrl:http:
bu2:[object HTMLScriptElement] routes.js:13
src:http:
baseUrl:http:
एक और अच्छी बात जो मैंने की है वह है आवश्यकता का लाभ लेने के लिए और इसमें कुछ कस्टम विन्यास डालना। यानी जोड़ें
customConfig: { baseRouteUrl: '/AngularLazyBaseLine/Home/Content' }
फिर आप इसे मार्गों के अंदर से निम्न कोड का उपयोग करके प्राप्त कर सकते हैं। js
var requireConfig = requirejs.s.contexts._.config;
console.log('requireConfig.customConfig.baseRouteUrl:' + requireConfig.customConfig.baseRouteUrl);
कभी-कभी आपको एक बेसल अपफ्रंट को परिभाषित करने की आवश्यकता होती है, कभी-कभी आपको इसे गतिशील रूप से उत्पन्न करने की आवश्यकता होती है। आपकी स्थिति के लिए आपकी पसंद।