有什么办法可以从组件内部设置/覆盖插槽的内容吗?喜欢
模板:
<div>
<slot></slot>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
export default {
...
mounted() {
this.$slot.render("<button>OK</button>");
}
...
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用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 :)
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
基本上我希望 Vue 在我的组件范围内渲染(如解析和渲染,而不是像innerHTML
)某些字符串,并将其放置在我的组件中的某个位置。原因是我通过 AJAX 从服务器获取新内容。
抱歉,经过 2 天的谷歌搜索后我仍然无法理解。
多谢!
据此,您可以以编程方式实例化组件并插入插槽内容。
import Button from 'Button.vue'
import Vue from 'vue'
var ComponentClass = Vue.extend(Button)
var instance = new ComponentClass({
propsData: { type: 'primary' }
})
instance.$slots.default = [ 'Click me!' ]
instance.$mount() // pass nothing
this.$refs.container.appendChild(instance.$el)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7138 次 |
最近记录: |