簡體   English   中英

如何將ng-repeat值傳遞給控制器

[英]How to pass ng-repeat value to controller

我正在使用帶有過濾器的ng-repeat指令,如下所示:

<div ng-repeat="person in data">
</div

即顯示{{data.length}}個人。 (我希望將長度值傳遞給控制器​​)

但是我需要將過濾后的長度值傳遞給控制器​​,因為我基於過濾后的長度值執行相同的邏輯。

1.方法1

ng-repeat="item in filtered = (data | filter:filterExpr)"

將創建過濾列表。

filtered.length將顯示過濾后的長度。

2,方法二

使用$watch檢測過濾的長度。

$scope.length = $scope.data.length;
$scope.$watch("search", function(query) {
    $scope.length = $filter("filter")($scope.data, query).length;
});

 var app = angular.module('angularjs-starter', []) app.controller('MainCtrl', function($scope, $filter) { $scope.data = [{ "name": "Martin", "age": 21 }, { "name": "Peter", "age": 26 }, { "name": "Arun", "age": 25 }, { "name": "Maxwell", "age": 22 }]; $scope.counted = $scope.data.length; $scope.$watch("search", function(query) { $scope.filteredData = $filter("filter")($scope.data, query); }); }); 
 <html ng-app="angularjs-starter"> <head lang="en"> <meta charset="utf-8"> <title>Demo</title> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script> <link rel="stylesheet" href="style.css"> <script> document.write('<base href="' + document.location + '" />'); </script> <script src="app.js"></script> </head> <body ng-controller="MainCtrl"> <input ng-model="search" type="text"> <br>Showing {{data.length}} Persons; <br>Filtered {{filteredData.length}} <ul> <li ng-repeat="person in filteredData"> {{person.name}} </li> </ul> </body> <script> </script> </html> 

暫無
暫無

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

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