Неожиданный результат ng-bind в angularjs

#html #angularjs

#HTML #angularjs

Вопрос:

             $scope.clickedNum = function(passedNum){
                $scope.string1='';
                $scope.numToDisplay=passedNum;
                for (var i=1; i<=passedNum; i  ) {
                    $scope.string1=$scope.string1 '<img src="img/' $scope.selectedItem '.png" title="' $scope.selectedItem '" />';
                }
            }







<div id="figuresToDisplay" ng-bind="string1"></div>
  

Я хочу, чтобы некоторые изображения отображались в div с id =»figuresToDisplay» с помощью скрипта, но результат отображается в виде обычного текста, а не изображения. Пожалуйста, направьте меня.

Комментарии:

1. Используйте ng-bind-html вместо ng-bind

2. Спасибо за ваше предложение, оно было очень полезно для меня. когда я использую фильтр «ng-bind-html» (вместо ng-bind) и «$ sce.trustAsHtml» вместе, только я получаю желаемый результат. Еще раз спасибо

Ответ №1:

Для этого вам следует использовать $sce.trustAsHtml, лучший способ сделать это так

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

и используйте его в своем шаблоне

 <div id="figuresToDisplay" ng-bind-html="string1 | safeHtml"></div>
  

или вы можете использовать его без создания filter, но если вы используете это в разных местах, я предлагаю вам реализовать filter.Спасибо

Комментарии:

1. Спасибо за ваше предложение, оно было очень полезно для меня. когда я использую фильтр «ng-bind-html» (вместо ng-bind) и «$ sce.trustAsHtml» вместе, только я получаю желаемый результат. Еще раз спасибо