我正在做一个使用angular-js的离子应用程序。使用ng-repeat,我填充结果。我想根据不同的标准显示不同的颜色。
我设法使用内联ng样式编码只做了一个标准,如下所示:
<table ng-style="{color:(test.Status == 'Cleared')?'green' : 'red'}">
它工作得很好,但如果我确实希望设置更多标准,如时间等,那么内联将不是一个可行的选择。
因此,我试图通过此将其更改为控制器。
<ion-list>
<ion-item ng-repeat="test in tests" class ="item-text-wrap" style="height:40%">
<a href="#/tab/test/test-detail/{{test.ID}}">
<div style="width:80%; float:left;">
<table>
<span ng-style="calculateStyle(test)">
<tr>
<td> <strong>Remark: </strong></td>
<td style="padding:3px">{{test.Remark}}</td>
</tr>
<tr>
<td><strong>Status:</strong></td>
<td style="padding:3px">{{test.Status}}</td>
</tr>
</span>
</table>
</div>
</a>
</ion-item>
</ion-list>
在我的控制器类中,
.controller('Ctrl', function($scope, $http, $cordovaSQLite, dataFactory, StoreService) {
....
$scope.calculateStyle = function(test) {
var style={}
if (test.Status == 'Cleared') {
style.color='green';
console.log('Viola');
}
else{
console.log('GG');
}
return style;
}
注意:测试是从webservice检索的JSON数据,其中包含许多对象。因此,需要ng-repeat和我试图获得每个test.Status值来进行颜色编码。
由于某些原因我不知道为什么,它会引发我的错误
Uncaught SyntaxError:意外的令牌测试
在
$scope.calculateStyle = function(test)
我可以通过calculateStyle(&#39; Test&#39;)或calculateStyle(123)传递整数或字符串,它完全正常。只是通过&#39; case&#39;有问题。
我尝试将其替换为&#39; $ scope&#39;但仍无济于事。可能是什么问题?
谢谢!
答案 0 :(得分:1)
使用
<table ng-init="sloppy = case" ng-style="calculateStyle(sloppy)">
诀窍。