के आधार पर निर्भरता कोड पर विचार करें:
var app = angular.module("app", [], function($routeProvider) {
$routeProvider
.when("/page1", { controller: "MyController" })
.when("/page2", { controller: "MyController" })
.when("/page3", { controller: "MyController" });
});
app.factory("StrategyOne", function() {...});
app.factory("StrategyTwo", function() {...});
app.factory("StrategyThree", function() {...});
app.controller("MyController", function(Strategy, $scope) {...});
यूआरएल के आधार पर, मैं या तो StrategyOne
, या StrategyTwo
, या StrategyThree
चाहते हैं, इंजेक्ट किया जा करने के लिए जब MyController
निर्माण। विचार को चित्रित करने के लिए एक छद्म कोड:
var app = angular.module("app", [], function($routeProvider) {
$routeProvider
.when("/page1", { controller: "MyController", Strategy: "StrategyOne" })
.when("/page2", { controller: "MyController", Strategy: "StrategyTwo" })
.when("/page3", { controller: "MyController", Strategy: "StrategyThree" });
});
कोई परिवर्तन मैं AngularJS के साथ ऐसा कुछ प्राप्त कर सकता हूं?
OMG, मुझे यकीन है कि यह संभव है किया गया है, लेकिन मैं इसे _that_ आसान है नहीं की उम्मीद कर दिया गया है। धन्यवाद! :-) – agibalov
क्या यह अभी भी काम करता है? मैं एक मुद्दे में चला रहा हूं [यहां] (https://groups.google.com/forum/#!msg/angular/QtO8QoxSjYw/SWxea0tOBGYJ) जहां मेरा कारखाना केवल एक बार बुलाया जाता है; और प्रत्येक बार मार्ग को हल नहीं किया जाना चाहिए। – Lucas
@ लुकास शायद यह इसलिए है क्योंकि कारखानों सिंगलेट हैं और केवल एक बार कभी बुलाया जाता है! क्या होता है कि फैक्ट्री को आपके कंट्रोलर में इंजेक्शन दिया जाता है (उस पर कोई विधि नहीं कहा जाता है), जिससे आपके कंट्रोलर को जो कुछ भी पसंद है उसे छोड़ दें। आपके नियंत्रक 'StrategyOne.getContent() 'में – WickyNilliams