2015-09-15 26 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'吗?这很重要 –

相关问题