2015-06-09 43 views
0

我正在尋找一種方法來使用控制器中的功能在各種地方放置圖標。AngularJS呈現模板中的圖標的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標籤,直到我找到正確的東西 –