11
에 따라 주입 컨트롤러 종속 코드 고려해
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에 따라, 나는 MyController
를 구성 할 때, 주입 할 StrategyOne
, 또는 StrategyTwo
, 또는 StrategyThree
중 하나를합니다. 아이디어를 설명하는 의사 코드 :
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