2015-09-17 44 views
1

我正在爲我的前端構建使用angular,html和css的混合,我試圖用角度更改字體超棒圖標onclick。但是,我無法讓它通過unicode到CSS並顯示正確的圖標。它只是打印出unicode。如何通過數據屬性將fontAwesome圖標傳遞給CSS內容

這裏是我的CSS:

&:before { 
     content: attr(data-icon); 
     font-family: "fontAwesome"; 
     font-size: 2em; 
     position: absolute; 
     left: .65em; 
     top: .25em; 
    } 

我的HTML /角:

<div class="accordion--title" ng-click="showAccordionDetail = !showAccordionDetail" ng-attr-data-icon="{{showAccordionDetail && '\f107' || '\f106' }}"> 
+0

爲什麼不使用''標籤作爲圖標(如Fontawesome [示例](https://fortawesome.github.io/Font-Awesome/examples/)中所示),然後使用' ng-class'指令?或者正在使用數據屬性一個硬性要求? – muenchdo

回答

3

使用ng-class,更容易做到這一點:

<div 
    ng-init="showAccordionDetail = false" 
    class="accordion--title" 
    ng-click="showAccordionDetail = !showAccordionDetail" 
    ng-class="{true:'fa fa-angle-down', false: 'fa fa-angle-right'}[showAccordionDetail]"> 
     click me 
</div> 
+0

謝謝。不知道爲什麼我沒有想到這個選項:) –

0

由於Enkode的回答,更容易使用ng-class但我做了一些更改,使其更簡單。

<div ng-init="showAccordionDetail = false" 
    class="accordion--title" 
    ng-click="showAccordionDetail = !showAccordionDetail" 
    ng-class="{'fa fa-angle-down': showAccordionDetail, 'fa fa-angle-right': !showAccordionDetail}"> 
    click me 
</div> 

希望這會有所幫助。

相關問題