2014-09-15 3 views
0

Раньше я использовал ng-bind (или сокращенное {{}}) для привязки некоторого текста в промежутке.Одностороннее связывание HTML в angularjs

<p>Preview: <span>formattedPrice(price)</span></p> 

Как вы можете видеть, у меня был вызов функции formattedPrice при связывании. Теперь я понимаю, что должен добавить HTML-код в этот диапазон. Я пробовал ng-bind-html="formattedPrice(price)", но это, похоже, не режет.

Есть ли способ, которым я могу это сделать, не создавая другую переменную сферы?

ответ

1

Убедитесь, что приложение загружает ngSanitize модуль:

angular.module('app', ['ngSanitize']) 

А на HTML (пример):

<script src="<PATH_TO>/angular-sanitize.js"></script> 

Без этого модуля Угловой не сможет правильно разобрать HTML-код, который вы хотите отобразить.

Demo

+0

Это действительно была проблема. Попробуем также ответить на @ johnny. – nightgaunt

2

Вы должны использовать фильтр.

Как это:

<p>Preview: <span>{{price | formatted}}</span></p> 

Пример фильтра:

angular.module('myFilters', []).filter('formatted', function() { 
    return function(input) { 
    //return your formatted price here 
    } 
} 
+0

Может быть глупый вопрос. Но это работает и для HTML? Допустим, отформатированная цена имеет '$ 20 $ 10'. – nightgaunt

+0

Для этого вам нужно сделать что-то вроде этого johnny

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