我有一个注册的自定义过滤器组件,例如:
import Filter from "../components/DataTableComponent/StringFilter";
components: {
Filter
},
我可以在vue2-datatable列中使用此组件,例如:
var col : { title:"Foo", field:"Bar", comp: Filter }
基本上,我想从服务中给该组件一个名称作为字符串,然后像上面那样呈现它。
var col : { title:"Foo", field:"Bar", comp: "Filter" }
答案 0 :(得分:1)
要求是您尝试将component
对象发送到要发送的任何位置。因此,将其存储到当前工作的实例并动态使用它只是一个基本概念。
服务会向您发送组件名称-"Filter"
,并且您正在将相同名称的组件导入文件。
只需将其存储到对象中
import Filter from "../components/DataTableComponent/StringFilter";
// store it to local object
const componentReference = { Filter }
// Let say service sent you this name
const componentNameSentByService = "Filter"
//reference it to using the name dynamically using object
var col : { title:"Foo", field:"Bar", comp: componentReference[componentNameSentByService] }