【发布时间】:2016-03-27 02:55:43
【问题描述】:
我一直在思考这个问题,但是我想不出构建我的函数的步骤:
我有一个打嗝之类的html数据作为输入,这个结构是由html和自定义元素组成的,例如:
格式:[标签名选项和正文]
[:a {} []] ;; simple
[:a {} [[:span {} []]]] ;; nested component
[:other {} []] ;; custom component at tag-name
[:a {} [[:other {} []]]] ;; custom component at body
每当结构有一个自定义元素时,我应该用database中的html表示来渲染(替换)它,自定义元素可能出现在tag-name或身体:
(def example
[:div {} [[:a {} []]
[:custom {} []]]])
(def database {
:custom [[:a {} []
[:div {} []]})
(def expected-result
[:div {} [[:a {} []]
[:a {} []]
[:div {} []]]])
问题是:如何创建一个获取这些数据的函数,查找组件的标签和主体,如果有自定义元素将其替换为database元素,替换后再次查看,如果有新组件,请再次执行此步骤...
我已经有一个函数(custom-component?),它接受一个标签名称,如果是一个自定义元素,则返回一个布尔值:
(custom-component? :a) ;; false
(custom-component? :test) ;; true
感谢您的帮助,我真的很困惑。
【问题讨论】:
-
你检查过Reagent project吗?
-
@jmargolisvt 我只需要输出html,最后都是静态html(这是目标)