将事件处理程序附加到ClojureScript / Reagent中的html

问题描述 投票:0回答:1

我正在ClojureScript / Reagent中处理简单的“类似于Wiki的”超文本视图。

我有一些文字。现在,我想将与LinkPattern匹配的内容转换为可点击的链接。

在“传统” Wiki编程中,我只使用正则表达式来替换URL的模式。

例如转

this is SomeText that's a link

进入

this is <a href="/view/SomeText">SomeText</a> that's a link

但是在此版本中,>

a)我不想使它们成为普通的html锚链接,我想在链接上附加某种单击事件处理程序(这将触发对服务器的Ajax调用,而不是重新加载整个页面)

b)我正在使用Clojure的React试剂包装。所以我假设我不想简单地将原始Javascript混入html中。我想以“原则”的方式附加事件处理程序,这对ClojureScript和React / Reagent都是正确的。

所以我应该怎么做?

仅供参考,我正在将标记预处理为HTML,然后使用:dangerouslySetInnerHTML将其插入页面。因此,无论我将点击处理程序添加到链接中的内容如何,​​都必须使其幸免。

或者我是否必须添加事件处理程序之后

我已经渲染了它们?

在这种情况下,我该怎么办?我知道我在JQuery中会做什么,使用“ bind”将事件处理程序附加到特定类的范围。但是,再次,我对在ClojureScript Reagent中考虑此问题的正确方法感到困惑。在那个世界上,jQuery的“绑定”相当于什么?

我正在ClojureScript / Reagent中处理一个简单的“类似于Wiki的”超文本视图。我有一些文字。现在,我想将与LinkPattern匹配的内容转换为可点击的链接。在“传统” Wiki中...

clojurescript reagent
1个回答
0
投票

我认为使用:dangerouslySetInnerHTML可能在错误的路径上。作为您的使用试剂(它是一个反应包装器),您很少希望以这种方式将HTML注入DOM。

© www.soinside.com 2019 - 2024. All rights reserved.