【发布时间】:2017-11-22 16:11:47
【问题描述】:
有什么方法可以从组件内部设置/覆盖插槽的内容?喜欢
模板:
<div>
<slot></slot>
</div>
JS:
export default {
...
mounted() {
this.$slot.render("<button>OK</button>");
}
...
}
我知道我可以在我的元素上使用 v-html 将内容动态推送到组件模板中,但我的意思不仅仅是纯 HTML,我指的是带有 Vue 指令的 HTML。喜欢:
JS:
export default {
...
mounted() {
this.$slot.default.render('<button @click="submit">OK</button>');
},
methods: {
submit() {
// Here I want to get :)
}
}
...
}
基本上,我希望 Vue 在我的组件范围内渲染(像解析和渲染,而不像 innerHTML)某些字符串并放在我的组件中的某个位置。原因是我通过 AJAX 从服务器获取新内容。
很抱歉,经过 2 天的谷歌搜索,我仍然无法理解。
非常感谢!
【问题讨论】:
-
可能不会。您最好的机会是在创建实际对象之前构建组件模板字符串(但它不支持任何更改)。这是一个非常糟糕的解决方案,因此您很可能应该考虑重构您的应用程序。
-
感觉有点像对着框架工作
标签: vue.js