제공자로부터 $window
에 액세스하고 싶습니다. (mymodule.provider(...)
) BUT 구성시 이러한 종속성이 필요합니다 (따라서 $get
에 그러한 종속성을 넣는 것은 유용하지 않습니다). 현재
내가 $window
에 액세스하지 않으며, 내가 설정 시간에 같은 의존성을 필요로하는 이유는 내가 창에서 일정 인 $window.STATIC_URL
에 접근 할 필요가 있기 때문이다, 나는 상태 '템플릿을 구성하는 데 사용 ($stateProvider
).
현재 코드입니다 : 내가 두 설정에서 같은 값을 필요로하고 나는 그것을 사용 (실행 시간 때문에
mymodule.provider('StaticUrl', function() {
this.url = function() { return window.STATIC_URL || 'static'; };
this.$get = this.url;
});
이 더 그냥 상태를 설정하는 것보다 그래서 나는 컨트롤러와 같은 URL을 필요로 할 때 , 종속성으로 가져옵니다).
//config
mymodule.config(['StaticUrlProvider', '$stateProvider', function(sup, $sp){
//...
$sp.state('main', {
templateUrl: sup.url() + 'path/to/template.html'
});
//...
}]);
//run-time (in this case: a controller)
mymodule.controller('MyController', ['$scope', 'StaticUrl', function($s, su) {
var buildingType = /*a complex expression here*/;
$s.buildingPicture = $su + 'path/to/building/pics/' + buildingType + '.png';
}]);
기존 데이터 세트가 주어지면 제공해야하는 STATIC_URL 아래에있는 각 항목에 대한 그림이 있습니다. 그래서 이것은 두 단계에서 같은 상수를 사용한다는 것을 의미합니다.
어떻게하면 더 넓은 각도로 표현할 수 있습니까 (즉 글로벌에 의존하지 않고). moduleerr
을 제기하지 않고 공급자로부터 $window
에 액세스 할 수있는 방법이 있습니까?
시도를 호출 – harishr