ng-显示条件

时间:2017-04-13 11:32:49

标签: javascript angularjs json ng-show

我正在尝试显示行及其列值的总和。它有三种状态可以控制。

1)自动 2)住 3)autolive(不存在于json中,需要自动和实时组合行)

结论:

在siteData.jobType == toggleValue if(toggleValue == auto),它显示“auto”的记录

在siteData.jobType == toggleValue(toggleValue == live)上,它显示“live”的记录

但是在siteData.jobType == toggleValue(toggleValue == autolive)上,它没有显示记录,json中不存在coz autolive

如何实现它以显示自动和实时的组合记录?

//自定义切换按钮https://github.com/tannerlinsley/nz-toggle

<nz-toggle
tri-toggle
on-toggle="myFunction()"
ng-model="toggleValue"
val-true="'auto'"
val-false="'live'"
val-null="'autolive'">
</nz-toggle> 



<table class="table table-condensed" border ="1" >
<thead>
<tr>

<th>PiteId</th>
<th>PiteId</th>
<th>Type</th>
<th>Date</th>
<th >Success</th>


</tr>
</thead>
<tbody>
<tr ng-repeat="siteData in siteObject" ng-show="siteData.jobType==toggleValue"   >

<td>{{siteData.sid}}</td>
<td>{{siteData.PiteId}}</td>
<td>{{siteData.Type}}</td>
<td>{{siteData.Date}}</td>
<td  ng-init="siteObject.total.siteData.countSuccess = siteObject.total.siteData.countSuccess + siteData.countSuccess">{{siteData.countSuccess}}</td>
</tr>
</table>

json格式

siteObject =
    {
    "data": [
      {
          "sid": 1,
          "PiteId": "1~10-4-2017~15:13:40",
          "Type": "live",
          "Date": "2017-04-14T18:30:00.000Z",
          "countSuccess": 1
        },

      {
          "sid": 1,
          "PiteId": "1~10-4-2017~15:13:40",
          "Type": "auto",
          "Date": "2017-04-14T18:30:00.000Z",
          "countSuccess": 1
        }
    ]
    }

records of auto type

records of live type

当我切换autolive时,我想要所有这些

2 个答案:

答案 0 :(得分:1)

尝试此解决方法:ng-show="toggleValue.indexOf(siteData.jobType) > -1"

答案 1 :(得分:1)

你需要创建一个这样的自定义过滤器函数:(可以命名为

<tr ng-repeat="siteData in siteObject.data | filter: customFilter">

而且,在您的控制器中,您可以为此实现一些自定义逻辑。像这样:

$scope.customFilter = function(obj) {
  if($scope.toggleValue !== 'autolive') {
    return obj.Type === $scope.toggleValue      
  } 
  return true;
}

应该这样做!

此处working codepen example