Ai đó có thể cung cấp cho tôi một ví dụ về cách tôi có thể tạo Bộ lọc góc trong TypeScript sử dụng tính năng tiêm phụ thuộc. Ở phía dưới là những gì tôi hiện đang có, mà làm việc tốt, nhưng những gì tôi muốn làm là trong là chức năng tôi muốn có quyền truy cập vào $ lọc, để tôi có thể thay đổi ngày trở về dòng. ToString() thành $ lọc 'ngày'. Bằng cách đó tôi sử dụng bộ lọc ngày tháng được xây dựng để hiển thị một ngày ngắn thân thiện.AngularJS Lọc với TypeScript và tiêm
class FriendlyDateFilter {
public static Factory() {
return function (input): string {
if (angular.isDate(input)) {
var date: Date = input;
var today = new Date();
var days = Math.abs(getDaysBetweenDates(today, date));
if (days < 7) {
var dayInWeek = date.getDay();
switch (dayInWeek) {
case 0:
return "Sunday";
break;
case 1:
return "Monday";
break;
case 2:
return "Tuesday";
break;
case 3:
return "Wednesday";
break;
case 4:
return "Thursday";
break;
case 5:
return "Friday";
break;
case 6:
return "Saturday";
break;
}
} else {
return date.toString();
}
} else {
return input;
}
}
function getDaysBetweenDates(d0, d1) {
var msPerDay = 8.64e7;
// Copy dates so don't mess them up
var x0: any = new Date(d0);
var x1: any = new Date(d1);
// Set to noon - avoid DST errors
x0.setHours(12, 0, 0);
x1.setHours(12, 0, 0);
// Round to remove daylight saving errors
return Math.round((x1 - x0)/msPerDay);
}
}
}
}
angular.module("ReadingLog").filter("FriendlyDateFilter", FriendlyDateFilter.Factory);
Thêm $ filter làm đối số cho chức năng của nhà máy? Đó là cách bạn sẽ làm điều đó trong JS. –
Vâng tôi cho rằng đó là những gì tôi cần, nhưng tôi cũng cần phải sử dụng $ inject một nơi nào đó/bằng cách nào đó và đó là những gì tôi không hiểu làm thế nào để làm. –
Trong JS, bạn sẽ làm 'FriendlyDateFilter.Factory. $ Inject = ['$ filter']'. Hoặc bạn sẽ không làm bất cứ điều gì, nhưng sử dụng ng-chú thích trong quá trình xây dựng. –