Vue render function可以从外部接收零件模板吗?
如果有像下面这样的渲染函数:
var custom_form_modal = function ( context, custom_form ) {
context.$Modal.info({
render: (h) => {
return h('div', {})
}
})
...
custem_form
,例如像bellow:
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80">
<FormItem label="Name" prop="name">
<Input v-model="formValidate.name" placeholder="Enter your name"></Input>
</FormItem>
<FormItem label="E-mail" prop="mail">
<Input v-model="formValidate.mail" placeholder="Enter your e-mail"></Input>
</FormItem>
<FormItem label="City" prop="city">
<Select v-model="formValidate.city" placeholder="Select your city">
<Option value="beijing">New York</Option>
<Option value="shanghai">London</Option>
<Option value="shenzhen">Sydney</Option>
</Select>
</FormItem>
</Form>
或任何可以作为表单解释的javascript类型。
我想把它作为custom_form
,然后渲染到div
(你会看到custom_form_modal
)。
有没有办法实现这个目标?
修改-1
我通过函数custom_form_modal
渲染模板,然后我可以在按钮单击事件中显示模态,然后我不需要在调用vue文件的<template>
中编写代码。这是我的要求。
答案 0 :(得分:1)
最后,我阅读了document,并找到了存档的解决方案:
var custom_form_modal = function (context, custom_form_component ) {
context.$Modal.info({
render: (h) => {
return h('div', {
},[
h(custom_form_component, { props: {} })
])
}
})
}
使用custom_form_modal
:
import custom_form from '../components/combined_table/components/custom_form.vue'
export default {
methods: {
handleStart() {
Util.custom_form_modal(this, custom_form)
}
},
components: {
custom_form
}
};