bağlı enjekte kontrolör bağımlılıkları kodu göz önünde bulundurun:
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) {...});
URL'ye bağlı olarak, ben MyController
oluştururken, enjekte edilecek StrategyOne
veya StrategyTwo
veya StrategyThree
ya istiyorum.
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" });
});
Ben angularjs ile böyle bir şey elde edebilirsiniz herhangi bir değişiklik: Bir sözde kod fikir göstermek için?
OMG, bunun mümkün olduğuna emin oldum, ama _that_ kolay bekliyor edilmemiştir. Teşekkürler! :-) – agibalov
Bu hala çalışıyor mu? [Burada] (https://groups.google.com/forum/#!msg/angular/QtO8QoxSjYw/SWxea0tOBGYJ) belirtilen bir sorunla karşılaşıyorum. Fabrikam yalnızca bir kez çağrıldıysa; ve her seferinde rota çözülmemelidir. – Lucas
@Lucas Bu muhtemelen, fabrikaların bekar olması ve sadece bir kez çağrılmasıdır! Ne olur, fabrika kontrolörünüze enjekte edilir (buna hiçbir yöntem denir), kontrol cihazınızı sizin cihazınıza benzeyen herşeyi geri alır, örn. kontrol cihazınızda 'StrategyOne.getContent()' – WickyNilliams