<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl as vm">
<form class="col2">
<label for="filter-online">
Filter by Online
</label>
<div class="select">
<select id="filter-online" ng-model="vm.online" class="form-control" ng-options="online for online in vm.onlines">
<option value="">All</option>
</select>
</div>
</form>
<form class="col2">
<label for="filter-productType">
Filter by Product Type
</label>
<div class="select">
<select id="filter-productType" ng-model="vm.productType" class="form-control" ng-options="productType for productType in vm.productTypes">
<option value="">All</option>
</select>
</div>
</form>
<table style="margin-top: 30px">
<tr ng-repeat="lim in vm.stockLimits | filter:{online:vm.online && vm.online !== '' ? vm.online : '', productType: vm.productType && vm.productType !== '' ? vm.productType : ''}">
<td>{{lim.online}}</td>
<td>{{lim.productType}}</td>
</tr>
</table>
</div>
angular.module("myApp", [])
.controller("myCtrl", function($scope) {
var vm = this;
vm.onlines = ["Men", "Kids", "Ladies"];
vm.productTypes = ["Shirt", "Shoe", "Belt", "Top"];
vm.stockLimits = [{
id: 1,
online: "Men",
productType: "Shirt"
}, {
id: 2,
online: "Men",
productType: "Shoe"
}, {
id: 3,
online: "Kids",
productType: "Belt"
}, {
id: 4,
online: "Ladies",
productType: "Top"
},
{
id: 5,
online: "Kids",
productType: null
}]
})
Ich möchte die Daten basierend auf filter-online & filter-productType Dropdown filtern. Online hat immer einige Daten, aber ProductType kann Nullwert sein. Wenn ich nach Kindern filtere, filtert productType mit Nullwerten nicht richtig. Ich brauche das Ergebnis wie unten, wenn ich nach 'Kids' filtere.Tabelle Null Spaltenfilter Winkel Js
Kids Belt
Kids
Aber, ich bin nur eine Zeile Kids Belt
bekommen.
Es hat super funktioniert. Vielen Dank. – user2057006
Ist es möglich, eine benutzerdefinierte Filterfunktion anstelle der Inline-Filterfunktion zu schreiben? Ich bin neu im Front-End-Framework. Es wäre hilfreich, wenn ich eine benutzerdefinierte Filterfunktion bekomme. Ich fühlte mich am besten, die Funktion zum Controller zu bewegen und die benutzerdefinierte Filterfunktion aus der HTML-Vorlage aufzurufen. – user2057006
Ja, natürlich können Sie Ihren eigenen Filter erstellen! Sie finden die Dokumentation [hier] (https://docs.angularjs.org/guide/filter). Es wird nicht in Ihrem Controller sein, sondern als ein Filter deklariert, der Teil Ihres Moduls ist. –