2014-03-25 152 views
1

样品表AngularJS - 使用ngRepeat

<table class="table table-condensed table-striped table-responsive"> 
<thead> 
    <tr> 
     <th>Sender</th> 
     <th>Subject</th> 
     <th>Received</th> 
     <th>Actions</th> 
    </tr> 
</thead> 
<tbody> 
    <tr data-ng-repeat="message in messages | filter:search" data-ng-class="<% message.read %>"> 
     <td> 
      <% message.sender.first_name %> <% message.sender.last_name %> 
     </td> 
     <td> 
      <% message.subject %> 
     </td> 
     <td>[ TODO ]</td> 
     <td>[ TODO ]</td> 
    </tr> 
</tbody> 
</table> 

我的API返回消息数组时突出显示特定表的行,每个消息具有read布尔属性。如果message.read为false,我希望该行的类为success以突出显示表中所有未读消息。

我的尝试是不正确,但我想要做的就是填充data-ng-class="<% message.read %>"data-ng-class="success"

我也试图在没有运气以下:data-ng-class="rowClass(message)">

,并在控制器:

var messageControllers = angular.module('messageControllers', []); 

messageControllers.controller('MessageInboxCtrl', ['$scope', '$routeParams', 'Message', 
    function ($scope, $routeParams, Message) { 
     $scope.folder = 'Inbox'; 
     $scope.messages = Message.query(); 

     $scope.rowClass = (function(message) { 
      if (!message.read) return 'success'; 
      else return ''; 
     }); 
    }; 
}]); 

回答

6

从角度记录:

ngClass是一个表达式,将评估。 “评估结果可以是一个字符串,表示空格分隔的类名,数组或者类名到布尔值的映射。对于映射,其值为truthy的属性的名称将被添加为css类元素。“

因此,

data-ng-class="{success: !message.read}" 

例子请参阅http://plnkr.co/edit/8zSo5c?p=preview

+0

完美,谢谢! – Gravy