将全局CSS应用于注入的HTML(v-html)

时间:2018-12-16 05:47:39

标签: javascript html vue.js vuetify.js

我正在尝试使用Vue从数据库中注入HTML。我能够成功注入HTML,但是问题是我的框架样式表(Vuetify)没有得到应用。
它仅应用于注入的HTML,而不应用于页面的其余部分。

如何获取注入的HTML以使用Vuetify CSS?

尽管我在检查HTML时可以看到它们,但是也没有渲染HTML中的图像。

for(auto count = 0, auto mesh : meshList; ; count++)
{ 
... 
}

输出HTML:

<div v-html="post.format"></div>

1 个答案:

答案 0 :(得分:0)

正如@Husam所述,Vue不允许您这样做。最终是最好的,甚至应谨慎使用v-html。关于CSS,from the Vue.js site

  

在单文件组件中,作用域样式将不适用于内容   在v-html中,因为该HTML未被Vue的模板处理   编译器。如果要使用范围限定的CSS定位v-html内容,则可以   可以改用CSS模块或其他全局元素   并采用手动范围策略(例如BEM)。

作为一种更好的方法,从输出的外观来看,我建议将您的纯文本数据存储在数据库/集合中,并为这种类型的帖子制作组件模板。在数据库/集合中,您可以存储标题,描述,imageURL以及也许componentType。然后,在渲染时,可以从数据库中存储的内容中渲染特定的组件类型。

那会更清洁,更安全,甚至更容易维护。 I created a sample of what I'm talking about here on CodeSandbox.沙箱阻止了图像的加载,但它在那里。我将您的输出分为两个不同的部分,也请参见。

Edit Vue Template