簡體   English   中英

AngularJS ng-repeat過濾器計數變量?

[英]Angularjs ng-repeat filter counting variables?

我正在創建一個樹狀視圖,以顯示員工尚未填寫,開始或完成的表格數量。 可以有多個嵌套級別。

舉一個簡單的例子,行是:

2014年:缺少:3,開始= 7,完​​成= 7

John Doe:丟失= 2,開始= 3,已完成= 5

菲爾·史密斯(Phil Smith):丟失= 1,開始= 4,已完成= 2

如果我按員工過濾怎么辦? 然后,我要更改年份行的缺失,開始和完成的計數。 如何使用ng-repeat動態計算這些變量?

您可能要計算控制器中的小計。 您的問題是您希望小計根據應用於視圖的過濾器進行更新。 您可以通過將$ filter注入控制器來實現。

在這里看看the: http ://plnkr.co/edit/JwUOzm5u3G7379I1W6hk? p= preview

我在輸入框中創建了一個過濾器。 嘗試更改文本,小計將相應更新。 在這種情況下,我在視圖和控制器中都使用“過濾器”過濾器,以便視圖和小計同時更新。

代碼如下:

<!DOCTYPE html>
<html>
 <head>
    <script data-require="angular.js@*" data-semver="1.3.1" src="//code.angularjs.org/1.3.1/angular.js"></script>
    <link rel="stylesheet" href="style.css" />

    <script src="script.js"></script>
  </head>

  <body ng-app="app">


    <div ng-controller="mainCtrl as main">
      <input type="text" ng-model="main.empName" placeholder="name filter">
      <div ng-repeat="year in main.data">
      {{year.yearNum}}:{{main.calculateTotal(year.yearNum)}}
        <div ng-repeat="employee in year.employees|filter:main.empName">
          {{employee.name}} : {{employee.cost}}
        </div>
      </div>
    </div>



    <script>
    angular.module('app',[])
      .controller('mainCtrl',function($filter){
      var main=this;

      main.calculateTotal=function(yearNum){
        var data=main.data;
        var total=0;
        for(var i=0;i<data.length;i++){
          if(data[i].yearNum==yearNum)
          {
            var employees=$filter('filter')( main.data[i].employees, main.empName );
            for(var j=0;j<employees.length;j++){
              total+=employees[j].cost; 
            }
          }
        }
        return total;
      }


      main.data=[
        {
          yearNum:2012,
          employees:[
          {
            name:"jane",
            cost:200
          },
          {
            name:"jow",
            cost:400
          }
          ]
        },
        {
          yearNum:2013,
          employees:[
          {
            name:"jane",
            cost:250
          },
          {
            name:"jow",
            cost:450
          }
          ]
        }

        ];
    });
  </script>
  </body>

</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM