@DimaPolishuk

Как убрать экранирование с помощью angular?

имеется данный код
<p ng-bind-html="activeProperty.details | trusted"></p>


activeProperty.details - это данный текст
A GREAT LOT, THIS IS THE ONE YOU\'VE BEEN LOOKING FOR


trusted -данный фильтр
'use strict';

app
    .filter('trusted', ['$sce', function ($sce) {
        return function (text) {
            return $sce.trustAsHtml(text);
        };
    }]);


как убрать в тексте,в слове
YOU\'VE
слэш?
  • Вопрос задан
  • 838 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Поиск и замена?
return $sce.trustAsHtml(text.replace(/\\/g, ''));
Можно отдельный фильтр для этого сделать :-)

Набросал пример, у меня слеш и так не выводится:

<div ng-app="app">
  <div ng-controller="ExampleController">
    <p ng-bind-html="text | trusted"></p>
  </div>
</div>

angular.module('app', []).controller('ExampleController', function($scope) {
  $scope.text = "A GREAT LOT, THIS IS THE ONE YOU\'VE BEEN LOOKING FOR";
}).filter('trusted', ['$sce', function ($sce) {
  return function (text) {
    return $sce.trustAsHtml(text); // $sce.trustAsHtml(text.replace(/\\/g, ''));
  };
}]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Вероятно, при записи в базу делается escape для предотвращения sql-иньекции? Если да, то выполняйте обратную операцию перед отдачей контента
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы