繁体   English   中英

AngularJS-数组作为过滤器

[英]AngularJS - Array as filter

如何在使用字符串和字符串数组的ng-repeat中设置过滤器?

的HTML

<div ng-repeat="type in types| orderBy : 'name' | filter:{typology:currTipology}"

的JavaScript

var myData = ['string_1', 'string_2', ['string_3', 'string_4']];

我将为每个myData条目使用一个按钮,以将字符串值分配给“ currTipology”。

更新我试图更好地解释我的问题。 我有一个具有6种不同“类型”属性的主要对象数据。 我需要放置4个按钮:按钮1到3对应于1到3的“ typology”属性; 最后一个按钮必须过滤4到6个“ typology”属性。 我应该如何为最后一个按钮使用过滤器?

您可以通过以下方式使用过滤器

<div ng-repeat="subject in results.subjects | filter:{grade:'C'}">
   <input ng-model="subject.title" />
</div>

有关解析子数组的信息,请参见下面的代码片段(这仅适用于2级深的数组)。 希望它能完成工作:)

 var app = angular.module("app", []); app.controller("AppCtrl", function ($scope) { $scope.myData = ['string_1', 'string_2', ['string_3', 'string_4']]; $scope.isArray = function (type) { return typeof type === 'object'; } $scope.isString = function (type) { return typeof type === 'string'; } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="app" ng-controller="AppCtrl"> <div ng-repeat="type in myData"> <div ng-if="isString(type)"> {{type}} </div> <div ng-if="isArray(type)" ng-repeat="subtype in type"> {{subtype}} </div> </div> 

对于多个过滤器,您可以使用以下功能

<div ng-repeat="employee in employees | filter:{name: companyName} | filter:gradeFilter">

在控制器中,您可以使用过滤器功能,例如

$scope.gradeFilter = function (employee) {
   if(employee.salary > 70000 && employee.exp > 3){ 
      return "Senior"
   } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM