2017-04-13 10 views
0

私は行とその列の値の合計を表示しようとしています。それは状態が保持される3つの状態を有する。 (toggleValue =場合siteData.jobType == toggleValueでng - 条件のテーブルのレコードを表示します。

1)オート 2) 3)autolive(JSONに存在しない、自動車を必要と行に結合住む)

結論ライブ=自動)、それは "自動" siteData.jobType == toggleValue(toggleValue ==ライブ)で

のレコードを示し、それは

しかしsiteData.jobType == toggleValue上

(toggleValueを "ライブ" のレコードを示し==オートリブ)それはレコードを表示しません、coz autoliveはjsonに存在しません

自動とライブのレコードを組み合わせて表示するにはどうしたらいいですか?

//カスタムトグルボタン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

+0

だが、あなたのテーブルに代わり、 'NG-show'の[角度フィルタ](https://docs.angularjs.org/api/ng/filter/filter)を見てみましたか? – Theo

+0

@Theo 私は新しい角度で見て、そしてそれが当てはまるなら私はどのようにわからないのですか? – Creator

+0

オートリブ・トグルがオンになっていて、すべてのデータが表示されたらどうしますか? (データ型autoおよびタイプliveのデータ)? – Theo

答えて

1

を切り替えたときに、私はそれらのすべてをしたいが、この回避策を試してください:(は何名前を付けることができます)

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

:あなたはこのようにカスタムフィルタ関数を作成する必要がng-show="toggleValue.indexOf(siteData.jobType) > -1"

+0

これを説明できますか? – Creator

+0

あなたの変数には、あなたのトグルコントロールに基づいて3つの値を含めることができます。このコードで 'live'、' auto'、 'autolive'..so 'ng-show =" toggleValue.indexOf(siteData.jobType)> -1 "'あなたの 'toggleValue'にあなたの' jobType'が含まれているかどうかをチェックします。両方が見つかった場合は、すべてのレコードに対してtrueを返します。 –

+0

ありがとうございました トグルに基づいて成功率の合計を計算する方法をご存知ですか? {{siteData。countSuccess}} – Creator

1

そして、あなたのコントローラでは、カスタムロジックを実装することができます。このようなもの:

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

これはすべきです!

ここworking codepen example

関連する問題