javascript - 来自不属于范围的模板的Angular JS调用函数

标签 javascript angularjs

这听起来可能很奇怪,但我有一个看起来像这样的中继器。

<tr ng-repeat="task in tasks">
    <td>{{getFriendlyDate(date)}}</td>
</tr>

我可以像这样把这个函数放在作用域上。

$scope.getFriendlyDate = function(date){

    /* Code to convert ISO date to readable date */
    return date;

};

这很好用,但我需要在很多模板中使用这个函数,所以我不想将它复制并粘贴到很多 Controller 中。

一个选择是创建一个服务来执行此操作,并在每个 Controller 的作用域上放置一个简单的包装器,但这不会为我节省太多时间。

另一种选择是将函数放在根范围内并直接在我的模板中访问它,但我更喜欢它存在于我的实用程序库中(我有一个使用工厂创建的 $utils 库)。

我想知道是否可以调用服务直接从模板进行日期转换?

最佳答案

听起来你想要一个过滤器。创建过滤器一次:

angular.module("myModule").filter('friendlyDate', function() {
     return function(date) {
          /* Code to convert ISO date to readable date */
          return date;
     };
});

然后在你的 HTML 中无处不在:

<tr ng-repeat="task in tasks">
    <td>{{date | friendlyDate}}</td>
</tr>

关于javascript - 来自不属于范围的模板的Angular JS调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723908/

相关文章:

javascript - 使Soundcloud播放列表在重新加载时继续播放

javascript - 当我添加命中检测时,我的 Canvas 消失了

javascript - 使用 CoffeeScript 进行位置自动完成后无法从 getPlace 获取值

javascript - jsonp 在调用 Redmine API 时得到 404

javascript - 在表单提交之前用 AngularJS 同步调用服务器

javascript - 如何彻底删除JQPlot Chart

javascript - HTML/JS/CSS 中的 URL 标签列表

javascript - 开发实时协作绘图系统

javascript - 如何使用 Angular js 或 Javascript 解码为 UTF-8

javascript - 验证 $index 并设置样式