我正在浏览有关指令的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上找到任何文档。另外,我知道在AngularJS的非缩小版本中可以找到dateFilter(尽管名称在缩小版本中消失)。任何人都可以提供一些指导(可能还有一个链接)来解释有关dateFilter和类似功能的更多信息吗?
答案 0 :(得分:28)
日期过滤器文档位于: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);
});