我正在做一个使用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;
}
注:试验是从web服务,其具有许多对象检索的JSON数据。因此,需要ng-repeat,并且我试图获得每个test.Status值来进行颜色编码。
对于一些原因,我不知道为什么,它引发我一个错误
Uncaught SyntaxError: Unexpected token test
在
$scope.calculateStyle = function(test)
我可以整数关口或串过通过calculateStyle(“测试”)或calculateStyle(123),它工作得很好。只是通过'案件'有问题。
我试图用'$ scope'取代它,但仍无济于事。可能是什么问题呢?
谢谢!
你能控制台在'calculateStyle'里面登录'test'吗? – kdlcruz
你需要返回一个像{'color':'green'}这样的对象,你可能想仔细检查一下你正在回来的东西。也只是尝试和日志测试,确保你通过它。 – ajmajmajma
嗨,对不起,我调试太多,忘记了未定义的错误是范围。这个原始代码返回了未捕获的syntaxError。 – Gene