首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重复过滤计数变量?

重复过滤计数变量?
EN

Stack Overflow用户
提问于 2014-11-11 04:09:42
回答 1查看 89关注 0票数 0

我正在创建一个树视图,显示员工尚未填写、已开始或已完成的表单数量。可以有多个嵌套级别。

对于一个简单的例子,行是:

2014年:失踪:3,started=7,completed=7

无名氏: missing=2,started=3,completed=5

菲尔·史密斯: missing=1,started=4,completed=2

如果我对员工进行过滤呢?然后,我希望丢失、开始和完成的计数更改为年度行。如何使用ng-重复动态计算这些变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-11 06:33:14

您将需要计算控制器中的小计。您的问题是,您希望根据应用在视图上的筛选器更新小计。您可以通过将$filter注入控制器来实现这一点。

看一看这里的plunk:http://plnkr.co/edit/JwUOzm5u3G7379I1W6hk?p=preview

我在输入框中创建了一个过滤器。尝试更改文本,小计将相应更新。在这种情况下,我在视图和控制器中都使用了' filter‘过滤器,以便视图和小计同时更新。

代码如下:

代码语言:javascript
运行
复制
<!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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26857300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档