Angular:自定义管道事件处理

Angular: Custom pipe event handling

这是在采访中被问到的。

要求是创建一个自定义管道,如果文本超过一定数量的字符,它将 return 以 'Read more' link 为后缀的缩短文本,让说10个字。

如果单击 'Read more' link,整个原始文本应以 'Read less' link 为后缀显示。 如果单击 'Read less' link,缩短的文本应再次显示并带有 'Read more' link 后缀。 因此,'Read more' 和 'Read less' link 以及短文本和原始文本应在单击 link 时切换。

这整个功能只能通过管道实现。管道中是否可以进行事件处理?我们如何处理管道中 link 的点击事件?

我觉得面试官不知道管道的实际用途。基本上像 these kinds of complex operations 这样的 pipe shouldn't 句柄。管道应该处理一些基本操作,例如

  • 将日期时间更改为语言环境
  • Trim 字符串
  • 根据条件等对数字进行排序,

最好的选择是使用 Shared Component。他可以使用它来传达组件之间的事件。