gpt4 book ai didi

javascript - angular-formly multiCheckbox 全选

转载 作者:行者123 更新时间:2023-11-29 14:43:09 28 4
gpt4 key购买 nike

我有一个 Angular 形式的多选字段,具有以下选项:

vm.fields = [
{
key: 'fruits',
type: 'multiCheckbox',
className: 'multi-check',
templateOptions: {
label: 'Fruits:',
options: [
{
"name": "ALL",
"value":"ALL"
},

{
"name": "apple",
"value":"apple"
},
{
"name": "orange",
"value":"orange"
},
{
"name": "pear",
"value":"pear"
},
{
"name": "blueberry",
"value":"blueberry"
},
],
},

},

];

当我选择/取消选择“ALL”时,我希望选择/取消选择所有选项。例如。如果选中 ALL,则还应选中所有水果选项(苹果、橙子、梨、蓝莓)

如果我取消选择 ALL,则不应选中任何水果选项。

如何以 Angular 形式启用此行为?

这里是jsbin的链接: https://jsbin.com/xololi/edit?html,js,output

最佳答案

我在这里写了一个工作示例 https://jsbin.com/dukewac/6/edit?js,output

当函数为$modelValue, fieldOptions, scope, event 时templateOptions.onClick 的签名。当运行 ngModelAttrsTemplateManipulator 时会发生这种情况。我在我的函数中利用了这些变量。

其中一些有点老套,但部分与 Angular 如何实现复选框以及 angular-formly-templates-bootstrap 中的 multiCheckbox 类型所采用的变通方法有关。

陷阱

嵌套键

此示例不适用于嵌套键,但如果 multiCheckbox 类型已更新则应该适用。这是因为它使用数组访问符号直接访问模型 [请参阅此处的代码] ( https://github.com/formly-js/angular-formly-templates-bootstrap/blob/a69d69e5c3f6382ea6a6c028c1d8bf76a9b94db3/src/types/multiCheckbox.js )。

硬编码“全部”选项

该代码还假定“ALL”选项是列表中的第一个,并且其值为“ALL”。这可以通过添加一个 templateOption 属性来解决,该属性引用所有功能的索引和值。

模型包含'ALL'

'ALL' 将出现在您的模型中。解决这个问题的一种可能方法是为其定义一个 $parser。

不支持 templateOptions.valueProp

templateOptions.valueProp 未被考虑在内,但应该不会太难添加。

关于javascript - angular-formly multiCheckbox 全选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998583/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com