2016-09-29 2 views
5

JsFiddleКак разобрать html, который встроен в строку внутри объекта JavaScript?

<script> 
    angular.module('module', []); 

    angular.module('module').controller('hello', function($scope) { 
    $scope.obj = { 
     "text": "<u>HelloWorld</u>" 
    }; 

    }); 

</script> 

<body> 

    <div ng-app='module' ng-controller='hello'> 
    Current:{{obj.text}} 

    <br> 
    <br> Expected:<u>HelloWorld</u> 
    </div> 
</body> 

Я пытаюсь прочитать объект, хранящийся в JSON, а затем распечатать его на моей веб-странице.

Я указал ссылку на код, указанный выше.

Я ожидаю, что вывод будет строкой «HelloWorld», которая является подчеркиванием.

пс:

  • Я не могу редактировать JSON
  • Obj является объектом, который является неправдоподобным, я не мог разделить JSON так я использовал жёстко прописанные значение.
+0

Существует не JSON показано в коде , У вас есть объект. – nnnnnn

+0

Правильно, я использовал объект-заглушку, но этот объект извлекается из JSON, так как я не мог разделить весь JSON-файл здесь, я жестко закодировал объект в скрипте. Спасибо за предложение –

ответ

3

Вы можете использовать ng-bind-html и ng-bind-html-unsafe для такого рода целей. вы должны указать ngSanitize от angular-sanitize.

<p ng-bind-html="obj.text"></p> 

Пример показан here

+0

работает отлично. Спасибо –

1

Вы хотите просто использовать регулярное выражение, например, так:

$scope.obj.text = $scope.obj.text.replace(/(<([^>]+)>)/ig,""); 

Работа скрипку here

+0

Я хочу, чтобы тег был применен к строке, а не удалял его. –

1

Вы должны использовать angular-sanitize module:

<script src="path/to/installed/angular-sanitize/angular-sanitize.js"></script> 

<script> 
    angular.module("module", ["ngSanitize"]); 

    angular.module('module').controller('hello', function($scope) { 
     $scope.obj = { 
      "text": "<u>HelloWorld</u>" 
     }; 

    }); 

</script> 

И ваш HTML:

<div ng-app='module' ng-controller='hello'> 
    Current: <p ng-bind-html="obj.text"></p> 

    <br> 
    <br> Expected:<u>HelloWorld</u> 
</div> 
+0

Спасибо ... заработала –

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