vue.js - 如果元素是动态的,如何设置 v-model?
问题描述
我有一个组件 A,它使用 slot 和 slot 属性充当许多组件的包装器,它看起来像这样
<component-A :some-prop="foo">
<component-B slot-scope="slotProps"></component-B>
</component-A>
包含在组件中的所有动态组件-A 从单个对象获取数据,它具有所有键和值。组件 A 执行此功能,它接收组件将其克隆到右侧并更改所有输入字段(文本,选择框)在左侧标记(收音机,复选框除外),我用自定义js进行了克隆,在我替换dom树中的元素类型后需要设置收音机和复选框,这可能吗?有没有办法以编程方式设置 v-model?
解决方案
如果您有组件 A获取的原始数据,则组件 A克隆一些数据并将它们注入左侧的字段中,然后确保左侧的字段数据(克隆的)绑定到不同的 X 模型。以编程方式更新 v-model 就是更新 X 模型,如下所示:
零件:
<div >
<li v-for="color in colors">
<checkbox :checked="color.checked" > {{color.name}}
</li>
</li>
</div>
...
data: { return {
colors: [{name: 'red', checked: true},
{name: 'blue', checked: true},
{name: 'black', checked: false}]
}
}
....
methods: {
check_all_colors(){
// example to update model that reflects on checkbox fields
colors.forEach(function(element){
element.checked = true
});
}
}
推荐阅读
- python - 文件修改时间与 Python 时间不同
- node.js - 运行创建反应应用程序时找不到模块“caniuse-lite/dist/unpacker/agents”
- javascript - 尝试在按字母顺序排列的“div”列表下添加新对象
- apache-kafka - kafka stream windowedBy未按预期产生结果
- django - NoReverseMatch at /options/ Reverse for 'sales' with arguments '('',)' 未找到。尝试了 1 种模式:['sales/(?P
\\d+)/$'] - api - 如何使用 REST API 获取数据并将其发布到 odoo 视图中?
- flutter - 在 TextFormField Flutter 的值更改时禁用 AlertDialog 按钮
- javascript - 文件中的 Javascript 函数在 codeigniter 框架的引导模式中未定义
- arrays - 用 Bash 中的数组元素制作一个表格
- sas - SAS DI 中 SCD2 变换的替代方案