创建一个实用模块,封装了AngularJS的功能。

19 浏览
0 Comments

创建一个实用模块,封装了AngularJS的功能。

嗨,我需要指导理解如何创建一个实用程序模块,将AngularJS过滤器封装起来,以便我可以传递输入值 (2014-11-14T22:51:04.635Z) 进行格式化,并从中获得格式化的输出 (ng-filter: 14 Nov 2014 - 02:51 PM)。目标是独立于前端框架使用AngularJS过滤器属性。像mustache这样的框架在HTML中具有 {{}} 标签,而AngularJS也具有,当ng-filter直接用于HTML文件时,这可能会导致问题。因此,我正在尝试在不将它们包含在HTML中的情况下使用ngFilters。因此,目标是接受模板中的值,在JS文件中使用ngFilters对其进行格式化,并将值推回模板。

admin 更改状态以发布 2023年5月23日
0
0 Comments

如果您想要访问一些AngularJS功能,而不实际将AngularJS引导到您的Web应用程序中,您只需创建一个独立的注入器。

var $injector = angular.injector(['ng']);

然后,您可以从中检索$filter服务

$filter = $injector.invoke(['$filter', function ($filter) { return $filter; }]);

并且可以访问任何默认的AngularJS过滤器

var formattedDate = $filter('date')(originalDate, format);

0
0 Comments

你可以在javascript中轻松地调用$filter:

var input = '2014-11-14T22:51:04.635Z';
var format = 'd HHH yyyy - h:mm a';
var output = $filter('date')(new Date(input), format);

如果你想转换一个数组,可以使用.map()方法

// You need to get $filter somewhere
var format = 'd HHH yyyy - h:mm a';
var formatDate = $filter('date'); // Save (input.length - 1) function calls
input = ['2014-11-14T22:51:04.635Z', ...]
var output = input.map(function(in) {
  return formatDate(new Date(in), format);
});

如果想了解更多关于Angular中的date过滤器的信息,请访问:
https://docs.angularjs.org/api/ng/filter/date

0