Từ tài liệu này , chúng tôi có thể gọi một bộ lọc như ngày như thế này:
{{ myDateInScope | date: 'yyyy-MM-dd' }}
Ở đây ngày là một bộ lọc có một đối số.
Cú pháp để gọi các bộ lọc có nhiều tham số hơn cả từ mẫu và từ mã JavaScript là gì?
Từ tài liệu này , chúng tôi có thể gọi một bộ lọc như ngày như thế này:
{{ myDateInScope | date: 'yyyy-MM-dd' }}
Ở đây ngày là một bộ lọc có một đối số.
Cú pháp để gọi các bộ lọc có nhiều tham số hơn cả từ mẫu và từ mã JavaScript là gì?
Câu trả lời:
Trong các mẫu, bạn có thể tách các đối số bộ lọc bằng dấu hai chấm .
{{ yourExpression | yourFilter: arg1:arg2:... }}
Từ Javascript, bạn gọi nó là
$filter('yourFilter')(yourExpression, arg1, arg2, ...)
Thực sự có một ví dụ ẩn trong các tài liệu bộ lọc orderBy .
Thí dụ:
Giả sử bạn tạo một bộ lọc có thể thay thế mọi thứ bằng các biểu thức thông thường:
myApp.filter("regexReplace", function() { // register new filter
return function(input, searchRegex, replaceRegex) { // filter arguments
return input.replace(RegExp(searchRegex), replaceRegex); // implementation
};
});
Yêu cầu trong một mẫu để kiểm duyệt tất cả các chữ số:
<p>{{ myText | regexReplace: '[0-9]':'X' }}</p>
tôi đã đề cập ở bên dưới, nơi tôi cũng đã đề cập đến bộ lọc tùy chỉnh, làm thế nào để gọi các bộ lọc này có hai tham số
countryApp.filter('reverse', function() {
return function(input, uppercase) {
var out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
if (uppercase) {
out = out.toUpperCase();
}
return out;
}
});
và từ html bằng cách sử dụng mẫu, chúng ta có thể gọi bộ lọc đó như bên dưới
<h1>{{inputString| reverse:true }}</h1>
ở đây nếu bạn thấy, tham số đầu tiên là inputString và tham số thứ hai là true được kết hợp với "Reverse" bằng ký hiệu:
Nếu bạn muốn gọi bộ lọc của mình bên trong tùy chọn ng, mã sẽ như sau:
ng-options="productSize as ( productSize | sizeWithPrice: product ) for productSize in productSizes track by productSize.id"
trong đó bộ lọc là sizeWithpriceFilter và nó có hai tham số sản phẩm và kích thước sản phẩm
như thế này:
var items = $filter('filter')(array, {Column1:false,Column2:'Pending'});
Nếu bạn cần hai hoặc nhiều giao dịch với bộ lọc, có thể xâu chuỗi chúng:
{{ value | decimalRound: 2 | currencySimbol: 'U$' }}
// 11.1111 becomes U$ 11.11
Trong mã này, jsondata là mảng của chúng tôi và trong hàm trả về, chúng tôi đang kiểm tra 'phiên bản' có trong jsondata.
var as = $filter('filter')(jsondata, function (n,jsondata){
return n.filter.version==='V.0.3'
});
console.log("name is " + as[0].name+as[0]);