2016-05-15 34 views
0

我使用ng-repeat將我的數組中的每個元素都打印爲HTML段落。如何根據html內容使用ng-class - AngularJS

<p ng-repeat="item in queries track by $index">{{ item }}</p> 

結果是:

------------ title 1 -------------- 
content 1 
------------ title 2 -------------- 
content 2 
------------ title 3 -------------- 
content 3 
------------ title 4 -------------- 
content 4 

的問題是,我似乎無法弄清楚如何自定義樣式的段落(如color:red;)。

+0

你可以在你的控制器或指令中的每個查詢上設置一個顏色屬性,然後調用'item.color' – user2954587

+0

我剛剛意識到Alexsander Azizi的編輯刪除了原始問題的一個重要部分 - 只在項目中應用類/樣式包含「標題」一詞。這顯然改變了答案。 – WonderGrub

回答

2

添加NG-class屬性

<p ng-repeat="item in queries track by $index" 
       ng-class={someCustomClass: item.title} >{{ item }}</p> 

如果以上不工作那麼這應該

<p ng-repeat="item in queries track by $index" 
      ng-class={someCustomClass: Boolean(item.title) } >{{ item }}</p> 

如果我錯了,這個想法是提供一個對象文本納克級,其中關鍵是班級名稱和價值是應用班級的條件

所以ng-class={ theClassNameToUse: TheCondition }

1

像這樣的東西會做:

<p ng-repeat="item in queries track by $index" 
    ng-attr-style="{{ item.indexOf('title') != -1 ? 'color: red' : '' }}">{{ item }}</p> 
+0

非常感謝你@Gevorg Harutyunyan你的解決方案很棒,(y) – James

+0

不客氣! – gevorg

2

如果你想使用納克級,你可以使用這個語法:

ng-class="{'class-name': item.indexOf('title') >= 0}" 

或者,你可以使用NG風格是這樣的:

ng-style="setColor(item)" 

使用功能:

$scope.setColor = function (item) { 
    if (item.indexOf("title") >= 0) { 
     return { color: red }; 
    } 
} 
+1

謝謝@WonderGrub,您的解決方案對我來說很好。 – James