2015-09-15 28 views
2

我正在做一個使用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'取代它,但仍無濟於事。可能是什麼問題呢?

謝謝!

+0

你能控制檯在'calculateStyle'裏面登錄'test'嗎? – kdlcruz

+0

你需要返回一個像{'color':'green'}這樣的對象,你可能想仔細檢查一下你正在回來的東西。也只是嘗試和日誌測試,確保你通過它。 – ajmajmajma

+0

嗨,對不起,我調試太多,忘記了未定義的錯誤是範圍。這個原始代碼返回了未捕獲的syntaxError。 – Gene

回答

1

使用

<table ng-init="sloppy = case" ng-style="calculateStyle(sloppy)"> 

的伎倆。

+0

嗨,我確實接近,但我沒有把它放進去。我的壞。我現在編輯。 – Gene

+0

@AnikIslamAbhi如果有一個未捕獲的語法錯誤,那麼整個視圖和Web應用程序是白色的,無法看到任何東西。 – Gene

+0

在你進一步研究之前,你會嘗試改用'ng-href'嗎?這很重要 –

相關問題