Javascript中的Angular2力矩管道

Javascript中的Angular2力矩管道,javascript,angular,ionic-framework,Javascript,Angular,Ionic Framework,我用的是Ionic3。管道可以完美地格式化时间戳,例如: html <ion-note class="small-text-search"> Last Online {{personModel.lastAccessDate | amTimeAgo:true}} ago </ion-note> 这是在我的html代码中。然而,我想在Javascript字符串中这样做,即e.x ts 'Last Online '+personModel.lastAccessDate |

我用的是Ionic3。管道可以完美地格式化时间戳,例如:

html

<ion-note class="small-text-search">
  Last Online {{personModel.lastAccessDate | amTimeAgo:true}} ago
</ion-note>
这是在我的html代码中。然而,我想在Javascript字符串中这样做,即e.x

ts

'Last Online '+personModel.lastAccessDate | amTimeAgo:true +' ago';
错误:

Typescript Error Cannot find name 'amTimeAgo'.
问题


有人知道如何在javascript中使用管道吗?我将如何编写此代码?谢谢。

大多数管道只是围绕各自服务的薄包装

某些管道的功能在其他情况下很难更换(例如内置角管)。在这种情况下,可以实例化管道类并调用
transform
方法

很少有管道被设计为只与编译器一起使用,比如那些使用
ChangeDetectorRef
与组件集成的管道

正确的方法是直接使用服务和库。顺便说一下,angular2矩是矩库的包装器。应该是

'Last Online '+ moment(personModel.lastAccessDate).fromNow() +' ago';

我仍然不明白为什么我们要创建冗余代码块,因为我们已经通过构建自定义管道来实现相同的逻辑。我刚刚搜索并找到了这个。@Pengyy,因为管道引入了开销,可以做一些与这种使用方式不兼容的事情(moment.fromNow vs time ago就是一个很好的例子)。直接使用服务/库是一种非常简单的方法。使用
transform
的唯一好理由是当没有好的替代方案时(我使用内置管道进行此操作,但必须检查它们的逻辑是否不会导致问题)。A1和$filter有点不同,但在A2+中是如此。感谢您的解释,我刚才提到了TimeAgoPipe inject
ChangeDetectRef
。谢谢,我现在正在测试这个。如何导入
时刻
?我得到
找不到名称“时刻”<代码>导入*作为“时刻”的时刻,我想是吧。如果您没有将其安装在a2 moment软件包之外,则应将moment安装到项目中。
'Last Online '+ moment(personModel.lastAccessDate).fromNow() +' ago';