首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue.js -组件内部组件

Vue.js -组件内部组件
EN

Stack Overflow用户
提问于 2016-08-25 10:57:49
回答 2查看 1.6K关注 0票数 0

我的组件名为Grid。在这个组件中,我从服务器加载JSON数据并呈现它们。它们大多是字符串和整数。有时,JSON包含类似于<strong>myvalue</stong>的HTML,因此我呈现数据时有三个方括号,{{{}}}

问题是,当HTML不是纯HTML,而是像<my-component my-param="1"></my-component>这样的组件时。如何告诉Vue.js呈现这个丰富的?我得到的只是纯打印到网格中的HTML。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-25 13:45:25

您需要再次编译从远程.加载的代码

ps:我将使用jQuery来操作DOM。

在这个组件中,我从服务器加载JSON数据并呈现它们。

我假设您有一个名为"loadAndRenderFromServer()“的函数,请修改下面的代码以适合您。

如果您的网格有标记<div id='grid'>

代码语言:javascript
运行
复制
// vuecomponent.js
export default {
    [...]

    methods: {
        loadAndRenderFromServer() {
            // first, load remote content and insert into #grid

            // now, compile
            this.$compile($("#grid").get(0));
        }
    },

    [...]
}

如果组件开始复制加载的内容,则可能需要使用“反编译”。检查VueJS文档中的、编译反编译方法。

票数 0
EN

Stack Overflow用户

发布于 2016-08-25 12:20:57

如果它是一个组件,使用v-html (这相当于{{{}}})将不会呈现它内部的内容。

相反,尝试在父模板中使用<slot>

否则,如果您想要动态组件,您需要使用<component>,如果您想要这些动态组件中的内容,则需要使用<slot>

我建议你用这样的方法

代码语言:javascript
运行
复制
<component :is="myComponent" />

在这些组件的模型中放置一些<slot>来插入任意内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39143432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档