क्या पहले से बूटस्ट्रैप्ड कोणीय मॉड्यूल के लिए देर से निर्भरता को इंजेक्ट करने का एक तरीका है? यहाँ मेरा मतलब है:
कहें कि मेरे पास साइट-व्यापी कोणीय ऐप है, जिसे इस प्रकार परिभाषित किया गया है:
// in app.js
var App = angular.module("App", []);
और हर पेज में:
<html ng-app="App">
बाद में, मैं वर्तमान पृष्ठ की जरूरतों के आधार पर तर्क जोड़ने के लिए ऐप को फिर से खोल रहा हूं:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
अब, (जैसे कहते हैं कि तर्क के उन लोगों पर मांग बिट्स की है कि एक भी अपने स्वयं निर्भरता की आवश्यकता है ngTouch
, ngAnimate
, ngResource
, आदि)। मैं उन्हें आधार ऐप से कैसे जोड़ सकता हूं? यह काम नहीं लगता है:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
मुझे एहसास है कि मैं सब कुछ पहले से कर सकता हूं, अर्थात -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
या हर मॉड्यूल को अपने आप परिभाषित करें और फिर सब कुछ मुख्य ऐप में इंजेक्ट करें ( अधिक के लिए यहां देखें ):
// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
// in home.js
angular.module("Home", ['ngAnimate'])
.controller("HomeController", ['$scope', '$http', function($scope, $http){
// ...
}])
// in app.js, loaded last into the page (different for every page that varies in dependencies)
var App = angular.module("App", ['Reports', 'Home'])
लेकिन इसके लिए मुझे वर्तमान पृष्ठ की निर्भरता के साथ हर बार ऐप को इनिशियलाइज़ करना होगा।
मैं बुनियादी शामिल करने के लिए पसंद करते हैं app.js
हर पृष्ठ में और केवल प्रत्येक पृष्ठ (करने के लिए आवश्यक एक्सटेंशन परिचय reports.js
, home.js
,, आदि) मैं जोड़ने बूटस्ट्रैपिंग तर्क हर या निकालें कुछ को संशोधित करने के बिना।
क्या ऐप पर पहले से बूटस्ट्रैप होने पर निर्भरता का परिचय देने का एक तरीका है? ऐसा करने के लिए मुहावरेदार तरीका (या तरीके) माना जाता है? मैं बाद वाले समाधान की ओर झुक रहा हूं, लेकिन यह देखना चाहता हूं कि क्या मेरे द्वारा वर्णित तरीका भी हो सकता है। धन्यवाद।