2015-06-09 4 views
0

Я ищу способ разместить значки во всех местах, используя функцию в контроллере.AngularJS render FontAwesome html код для значков в шаблонах

Мой контроллер имеет:

$scope.fa_icon = function (icon) { 
    return "<span class='fa fa-" + icon + "'></span>"; 
}; 

template.html

<button> {{ fa_icon("headphones") }} Music </button> 

В настоящее время в template.html я вижу HTML код вместо обработанную HTML-код.

Если мне нужно использовать ng-bind-html мне потребуются некоторые переменный в формате <p ng-bind-html="myHTML"></p> но результат fa_icon("headphones") уже содержит <span> тегов и я не хочу, чтобы обернуть его с другим тегом так же, как пластырь.

Так мне было интересно, если есть что-то я могу использовать внутри контроллера для настройки этого ...

+0

Что относительно директивы для этого случая? Передайте элемент и класс тега, который вы хотите, и верните скомпилированный html. Может быть, лучшее, чистое решение. –

+0

, но вызывая сама директива - это означает создание тега с некоторыми вещами в нем, нет? можете ли вы отправить пример? Я не вижу, как это отличается от создания какого-либо пользовательского тега

ответ

0

Вы можете использовать ng-attr как этот

<button><i ng-attr-class="{{ fa_icon('headphones') }}"></i></button> 

$scope.fa_icon = function (icon) { 
    return "fa fa-" + icon; 
}; 

Как это все «некрасиво» вы должны иметь посмотрите на directives.

+0

да, но теги жестко закодированы, я хочу поместить их в саму функцию, потому что я продолжаю переключаться между span/i, пока я не получу что-то правильное –

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