如何在Angular 4中向clickHtml添加click事件

时间:2017-11-09 21:16:56

标签: angular innerhtml routelink

我正在构建一个内容系统,我希望用户能够创建一个带有文本块的帖子。如果他们使用'#'符号,我将它添加到我的数据库。然后在我的前端,我会在访客来时显示文字。

我希望能够解析所有的#并通过routeLink传递它们来搜索所有匹配#的帖子。

这一切都有一个例外。当我将文本传递给用户时:

 LinkAllHashes(t: string){
    this.bodyText = t.replace(/(^|\s)(#[a-zA-Z\d][\w-]*)/ig, "$1<span (click)='SearchAllHashes($2)' class='hash_tag'>$2</span>");

一切正常但忽略了(点击)事件。我一直在阅读这个地方,似乎我无法在运行时在innerHtml中附加一个函数。是这样吗?我怎么能绕过这个?

如果我这样做:

 PipeAllHashes(t: string){
   this.comcom = t.replace(/(^|\s)(#[a-zA-Z\d][\w-]*)/ig, "$1<a href='search-results/$2)' class='hash_tag'>$2</a>");

它可以正常运行,然后重新加载页面,对用户体验非常糟糕。这就是我需要使用routeLink的原因。

有什么想法吗?

* UPDATE

因此,在我的头撞到墙壁之后,我已经决定我目前的方法是最好的情况(等待更好的解决方案)。

  1. 得到字符串。
  2. 替换字符串#*
  3. 使用innerHtml
  4. 我基于我检查的随机推文的屏幕截图。

    Screenshot of the tweet with a #

    任何更好的想法,我都是耳朵。

0 个答案:

没有答案