我正在构建一个内容系统,我希望用户能够创建一个带有文本块的帖子。如果他们使用'#'符号,我将它添加到我的数据库。然后在我的前端,我会在访客来时显示文字。
我希望能够解析所有的#并通过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
因此,在我的头撞到墙壁之后,我已经决定我目前的方法是最好的情况(等待更好的解决方案)。