我的组件名为Grid。在这个组件中,我从服务器加载JSON数据并呈现它们。它们大多是字符串和整数。有时,JSON包含类似于<strong>myvalue</stong>
的HTML,因此我呈现数据时有三个方括号,{{{
和}}}
。
问题是,当HTML不是纯HTML,而是像<my-component my-param="1"></my-component>
这样的组件时。如何告诉Vue.js呈现这个丰富的?我得到的只是纯打印到网格中的HTML。
谢谢
发布于 2016-08-25 13:45:25
您需要再次编译从远程.加载的代码
ps:我将使用jQuery来操作DOM。
在这个组件中,我从服务器加载JSON数据并呈现它们。
我假设您有一个名为"loadAndRenderFromServer()“的函数,请修改下面的代码以适合您。
如果您的网格有标记<div id='grid'>
// vuecomponent.js
export default {
[...]
methods: {
loadAndRenderFromServer() {
// first, load remote content and insert into #grid
// now, compile
this.$compile($("#grid").get(0));
}
},
[...]
}
如果组件开始复制加载的内容,则可能需要使用“反编译”。检查VueJS文档中的、编译和反编译方法。
发布于 2016-08-25 12:20:57
如果它是一个组件,使用v-html
(这相当于{{{}}}
)将不会呈现它内部的内容。
相反,尝试在父模板中使用<slot>
。
否则,如果您想要动态组件,您需要使用<component>
,如果您想要这些动态组件中的内容,则需要使用<slot>
。
我建议你用这样的方法
<component :is="myComponent" />
在这些组件的模型中放置一些<slot>
来插入任意内容。
https://stackoverflow.com/questions/39143432
复制相似问题