我正在做一個使用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