Что такое dateFilter и где я могу узнать больше об этом?
Я просматриваю документацию Angular по директивам: http://docs.angularjs.org/guide/directive
Один из примеров на странице (полный рабочий пример здесь http://jsbin.com/osOQOYag/3/edit?html,js,output
angular.module('docsTimeDirective', [])
.controller('Ctrl2', function($scope) {
$scope.format = 'M/d/yy h:mm:ss a';
})
.directive('myCurrentTime', function($interval, dateFilter) {
function link(scope, element, attrs) {
var format,
timeoutId;
function updateTime() {
element.text(dateFilter(new Date(), format));
}
scope.$watch(attrs.myCurrentTime, function(value) {
format = value;
updateTime();
});
element.on('$destroy', function() {
$interval.cancel(timeoutId);
});
// start the UI update process; save the timeoutId for canceling
timeoutId = $interval(function() {
updateTime(); // update DOM
}, 1000);
}
return {
link: link
};
});
В строке:
.directive('myCurrentTime', function($interval, dateFilter) {
Я не могу на всю жизнь найти какую-либо информацию о прототипе .directive и не могу найти никакой документации на dateFilter нигде. Кроме того, я знаю, что dateFilter находится в Unminified версии AngularJS (хотя имя исчезает в мини-версии). Может ли кто-нибудь дать некоторые рекомендации (и, возможно, ссылку), объясняющие больше о dateFilter и подобных функциях?
Ответы
Ответ 1
Документы фильтрации даты: http://code.angularjs.org/1.2.5/docs/api/ng.filter:date
Здесь часть документов, которые объясняют впрыск фильтра: http://code.angularjs.org/1.2.5/docs/guide/filter#using-filters-in-controllers-and-services
Фильтры обычно используются в выражениях вида ({{myDate | date:'short'}}
), но они также могут использоваться в вашем JS-коде. Фильтры вводятся путем добавления строки Filter
к имени фильтра (например, date
→ dateFilter
).
app.controller('MyCtrl', function($scope, dateFilter, lowercaseFilter){
$scope.myDate = new Date();
$scope.myDateFormatted = dateFilter($scope.myDate, 'shortDate');
$scope.myString = 'Some String';
$scope.myStringLowerCased = lowercaseFilter($scope.myString);
});
PLUNKER