javascript - 在组件中捕获 html
问题描述
捕获一个子组件的内容,这个组件和这个依次调用另一个,在这个第二个组件中有一个html,在这个第二个组件中的代码javascripot捕获这个组件来使用它
第一个组件,作为组件子--字段--
<template>
<div id="login">
<field type="select" name="lang">
<option>one</option>
<option>zero</option>
</field>
</div>
</template>
第二个组成部分,是字段
<template>
<div class="field input">
<label>{{label}}</label>
<div v-html="htmlfield"> </div>
</div>
</template>
<script>
export default {
props: ['type'],
computed : {
htmlfield : function(){
switch (this.type) {
case 'select':
return `<select ${attr}>**__here__**</select>`; break;
}
},
},
}
</script>
__here__我想把第一个组件中指示的选项
我希望能够用 javascript 捕获组件的 html
解决方案
看起来您正在尝试创建一个通用<field>
的,您可以传递您想要的输入类型。
我可以建议一种不同的方法吗?
第一个组件
<template>
<div id="login">
<field type="select" :options="options" name="lang"></field>
</div>
</template>
<script>
export default {
data () {
return {
options: [
{ label: 'one', value: 'value1' },
{ label: 'zero', value: 'value2' }
]
}
}
}
</script>
第二部分:
<template>
<div class="field input">
<label>{{ label }}</label>
<select v-if="type === 'select'">
<option v-for="option in options" :value="option.value" :key="option.value">{{ option.label }}</option>
</select>
<input v-if="type === 'text'" type="text">
<input v-if="type === 'number'" type="number">
</div>
</template>
<script>
export default {
props: ['label', 'type', 'options']
}
</script>
在这里,我们不是在父模板中编写<option>
元素,而是在一个名为的数组中创建选项对象options
并将其<field>
作为道具传递给,然后我们可以<option>
在子模板中渲染元素'type' === 'select'
。
推荐阅读
- c# - 从数据库更新模型崩溃
- javascript - JSON问题似乎应该有效
- r - 在R中按名称模式选择列表元素
- azure - Azure 上的 Spark 堆空间和简单电子邮件
- c# - 在不同的表单上将值从一个 Datagridview 传输到另一个 Datagridview C#
- javascript - undefined 不是对象(评估 this.props.navigation.navigate)
- ssis - 是否可以使用脚本任务更改 SSIS 包中变量的值?
- c# - 如何在 4.5.2 .Net 版本的 C# 中使用 ReactiveList
- python - UnboundLocalError: 赋值前引用的局部变量 't' | 已经定义
- css - 背景与背景颜色 CSS