2014-09-29 61 views
2

我還是AngularJS的新手。我試圖改變表格元素的顏色,使其黃色,如果用戶投票選擇。有條件地改變angularjs元素的顏色?

<div ng-show="poll.userVoted"> 
    <table class="result-table"> 
     <tr ng-repeat="choice in poll.choices"> 
      <td>{{choice.text}}</td> 
      <td> 
      <table ng-if="choice.text == poll.userChoice.text" style="background-color: yellow; width: {{choice.votes.length/poll.totalVotes*100}}%; text-align: right"> 
       <tr> 

         <td>{{choice.votes.length}}</td> 
       </tr> 
      </table> 
      <table ng-if="choice.text != poll.userChoice.text" style="background-color: lightblue; width: {{choice.votes.length/poll.totalVotes*100}}%; text-align: right"> 
       <tr> 

        <td>{{choice.votes.length}}</td> 
       </tr> 
      </table> 
      </td> 
     </tr> 
    </table> 

enter image description here

+0

什麼錯誤? – hfarazm 2014-09-29 05:39:52

+1

你可以嘗試這樣的事情,如果我正確理解你的問題標題 - http://plnkr.co/edit/jeszGorMQmLiqhtWDt94?p=preview – swapnesh 2014-09-29 05:44:57

+0

謝謝我將prob做這樣的事情。我只是覺得我可以在某種程度上做到這一點,而不用爲它製作功能。 – jsky 2014-09-29 06:11:22

回答

7

這是通過使用納克級完成。

使用納克級上的TD是這樣的:

<td ng-class="{yellowstyle: choice.text==poll.userChoice.text}">...</td> 

,將放在CSS類yellowstyle的項目時你的病情是真實的。

而且在你的榜樣:

<table class="result-table"> 
    <tr ng-repeat="choice in poll.choices"> 
    <td>{{choice.text}}</td> 
    <td> 
     <table style="width: {{choice.votes.length/poll.totalVotes*100}}%; text-align: right"> 
     <tr> 
      <td ng-class="{yellowstyle: choice.text==poll.userChoice.text, lightbluestyle: choice.text!=poll.userChoice.text}">{{choice.votes.length}}</td> 
     </tr> 
     </table> 
    </td> 
    </tr> 
</table> 

與具有style.css的文件:

.yellowstyle {background-color: yellow;} 
.lightbluestyle {background-color: lightblue;} 
+0

這給了我一個語法錯誤: '錯誤:語法錯誤:令牌':'是表達式[12]處的意外令牌[yellowstyle:choice.text == poll.userChoice.text,lightbluestyle:choice.text!= poll.userChoice.text]開始於[:choice.text == poll.userChoice.text,lightbluestyle:choice.text!= poll.userChoice.text] .' – jsky 2014-09-29 06:04:16

+1

對不起,忘記了{} in ng-class,fixed,try再次 – 2014-09-29 06:21:59

+0

presto!謝謝你,先生。 – jsky 2014-09-29 06:24:42