2017-04-19 6 views
1

임, 나는 $ HTTP 서비스에 번역 된 문자열 값을 전달해야하는 대신에 문자열 객체.

하지만 아래 코드는 문자열 대신 문자 TrustedValueHolderType을 반환합니다.

defaultMessage = translate.instant('welcome-message.default.message');

enter image description here

최소한 https://plnkr.co/edit/ZPtixjNub9kIExiuGIkp?p=preview 열기 콘솔 plunkr (지우기). 그런 다음 DE 또는 EN 버튼을 클릭하여 로그를 확인하십시오.

+0

는 당신이 재생 plunker를 만들 수 있습니다 사용하지 않고도 작동하는 forked plunker입니까? – tanmay

+0

@tanmay plunker, DE 또는 EN을 클릭하고 콘솔을 열어 로그를 확인하십시오 : https://plnkr.co/edit/ZPtixjNub9kIExiuGIkp?p=preview – STEEL

+0

어떻게 알아?'decodeURIComponent()'가 문제를 해결합니다. – STEEL

답변

2

예, 설명에 언급 된대로 decodeURIComponent으로 해결 될 수 있습니다. 그러나 여기 처음에이를 일으키는 작업은 다음과 같습니다

$translateProvider.useSanitizeValueStrategy('sce') 

이 전 세계적으로 $translate에 대한 귀하의 출력을 인코딩합니다 .. 당신이 decodeURIComponent을 사용하여 일을 얻을 수있는 이유입니다.

아마도 다른 전략을 사용할 수 있습니다. angular-translate guide은 이에 대한 escape 전략을 제안하는 것으로 보입니다. 여기

escape 전략 및 decodeURIComponent