2015-10-20 2 views
0

Я пытаюсь понять, как перевести большие блоки html с угловым переводом (который я использую в качестве фильтра).Интерполяция в угловом переводе для html-инъекции

Я получил языковые файлы в формате JSON:

{ 
    "PURPOSE": "Sie Damit Beabsichtigt", 
    "INTRO_VID": "Sehen Sie sich das Intro-Video", 
    "TOUR": "An der Tour teilnehmen", 
    "PURPOSE_COPY": "<p>Die Idee hinter [snip]</p><p>Currency: {{vm.testAmount}}</p><p>Date: {{vm.testDate}}</p>" 
} 

затем в HTML я беру строку язык и передать его перевод фильтр с данными модели представления (translate:vm) и, наконец, htmlSafe фильтр, который позволяет ему быть проанализирован в HTML:

<div data-ng-bind-html="'PURPOSE_COPY' | translate:vm | htmlSafe"></div> 

htmlSafe фильтр выглядит как:

angular.module('kitchenapp').filter("htmlSafe", ['$sce', function($sce) { 
    return function(htmlCode){ 
     return $sce.trustAsHtml(htmlCode); 
    }; 
}]); 

html вводится на страницу в порядке, но не компилируется, хотя я передал модель представления для перевода. :(

ответ

0

Итак, все, что вы передаете translate:<expression> принимается за рамки Если вы хотите передать свой фактический объем затем передать translate:this Выше я прошел виртуальную машину, а затем посмотрел на vm.x:.. Это приравнивает к vm.vm. x, которого, очевидно, не существует.

Смежные вопросы