2016-08-18 1 views
0

이것은 간단해야하지만 광범위한 검색 결과를 얻은 후에는 답변을 찾지 못했습니다.전역으로 구성된 CDN URL을 AngularJS의 템플릿에 전달하는 방법은 무엇입니까?

웹 응용 프로그램에 CDN으로 cloudfront를 사용합니다. 클라우드 프론트 URL을 하나의 파일로 구성하고 싶습니다. 앞으로 변경 될 수 있습니다. CSS 스타일 배경을 통해 일부 이미지를 사용함에 따라 현재 템플릿에 값을 전달하려고합니다. 나는 하나의 솔루션이 모든 컨트롤러의 범위에 포함될 것이라는 것을 알았지 만, 너무 많아서 이것을 모두 포함하면 코드를 잊어 버리면 오류가 발생할 가능성이 커집니다.

app.js :

.constant('CDNurl', 'https://xxxxxxxxxxx.cloudfront.net/') 

main.js :

$rootScope.CDN = CDNurl; 

navbar.html

그래서,이 내가 시도 코드 예제입니다 :

<div class="avatar__image" 
ng-style="{'background-image':'url(' + 
$root.CDNurl + currentUser.profileImage+')'}">; 

이 작동하지 않습니다. navbar 컨트롤러에 포함 시키면 작동하지만 전역으로 전달해야합니다.

그래서 올바른 방법은 무엇입니까? 무언가를 구성하고 템플릿에서 도달하려면?

답변

0

DOM 상단에 상위 컨트롤러가 있고 $rootScope.CDN = CDNurl;을 설정하면 모든 하위보기에서 CDNurl에 액세스 할 수 있습니다.

또는 다른 옵션이 run을 사용할 수 있습니다 (I이 시도하지 않은) :

var app = angular.module('module', []); 

// run blocks 
app.run(function($rootScope, CDNurl) { 
    $rootScope.CDN = CDNurl; 
}); 
+0

덕분에, app.run 완벽하게 작동합니다 :) – Xyztor

관련 문제