[英]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.