Ng-Style:无法将数据传递给控制器

时间:2015-09-15 02:18:55

标签: javascript angularjs ionic

我正在做一个使用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;但仍无济于事。可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用

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

诀窍。