我想过滤控制器中的数据
这有效:
<input style=" margin-left: 15px; margin-top :50px; width:31%;" class="form-control" ng-model="ValueSearch" type="text" placeholder="Sort..." id="searchCompanies" autofocus />
<li class="result" ng-repeat="c in CompanyDashData | filter:{companyName:ValueSearch} ">
我想做的就是实现同样的目标,但在控制器中,这是我尝试过的:
<li class="result" ng-repeat="c in CompanyDashData | filter:filterinControl ">
然后在我的控制器中我做了这个功能
$scope.filterinControl = function () {
return $filter('filter')($scope.CompanyDashData,{companyName: $scope.ValueSearch});
}
但它只返回所有数据。
答案 0 :(得分:2)
你已经取代了
filter:{companyName:ValueSearch}
通过
filter:filterinControl
因此,如果您希望行为相同,filterinControl
必须是具有名为companyName
的字段的对象,并且值是输入的值。
但这不是它的本质。它是一个函数,它再次调用过滤器,并返回过滤后的数组。因此,您将过滤集合作为过滤器应用。
你可能想要的是
<li class="result" ng-repeat="c in filterinControl() ">
这将调用filterinControl()
并迭代它返回的过滤数组。
答案 1 :(得分:0)
HTML:
<li class="result" ng-repeat="c in filterinControl">
JS:
$scope.filterinControl = function () {
return $filter('filter')($scope.CompanyDashData,{companyName: $scope.ValueSearch});
}