Как скомпилировать угловое выражение {{scope.somevalue}} в ng-bind-html в элементе DOM?

0

У меня некоторый контроллер содержит значения $ scope, которые представляют собой строку html и переменную

$scope.variableText="value of variable";
$scope.htmlString = "<b>HP LaserJet 1020</b> printer provides ________________ dpi printing. {{variableText}}";

и в виду элемент DOM, который я использовал

<span><ANY ng-bind-html="htmlString | unsafe"></ANY></span>

для доверия как html я использую эту функцию фильтра,

app.filter('unsafe',function($sce) 
{
     return $sce.trustAsHtml; 
});

он успешно дает результат как вывод HTML, но не будет анализировать {{variableText}}

Принтер HP LaserJet 1020 обеспечивает печать с разрешением dpi. {{}} VariableText

  • 1
    Вы должны скомпилировать его с областью, к которой прикреплено значение. Посмотрите на $ compile
  • 0
    нужно скомпилировать
Показать ещё 2 комментария

1 ответ

1

Стараться сделать

HTML

<span><ANY ng-bind-html="htmlString | unsafe:this"></ANY></span>

JS

app.filter('unsafe', ['$sce', '$compile', function ($sce, $compile) {
return function (input, scope) {

    //create an angular element. (this is still our "view")
    var el = angular.element(input);

    //compile the view into a function.
    var compiled = $compile(el);

    //bind our view to the scope!
    //(try commenting out this line to see what happens!)
    compiled(scope);

    return $sce.trustAsHtml(el);
};}]);
  • 0
    Я не уверен, что это сработает, если вы напишите скрипку, я могу это проверить. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню