gpt4 book ai didi

javascript - 由于某种原因,CheckboxGroup 中的项目使用相同的管理器

转载 作者:行者123 更新时间:2023-11-28 21:19:05 24 4
gpt4 key购买 nike

好的,这是一小段代码(ExtJs 4):

    var TestA = function() {}
TestA.prototype.createCheckboxes = function() {
var items = [
{boxLabel: "A", inputValue: "A", name: "smthng"},
{boxLabel: "B", inputValue: "B", name: "smthng"}
];

var chgroup = new Ext.form.CheckboxGroup({items:items})
return chgroup;
}

var a = new TestA().createCheckboxes().items.get(0).getManager();
var b = new TestA().createCheckboxes().items.get(0).getManager();
console.log(a, b, a == b)

据我所知,我们正在创建 Ext.form.CheckboxGroup 的不同实例。然而,检查表明创建的项目正在使用相同的管理器。这是故意的吗?我怎样才能摆脱这种行为?因为我希望“不同”的复选框组不会互相影响(一种表单上的 loadRecords 会影响另一种表单)

最佳答案

这是故意的。 CheckboxManager是一个单例,只不过是带有一些包装函数的“DOM 中所有复选框的集合”

为了实现您想要的目标(一组中的事件不应影响其他组),您必须确保各个复选框组之间的复选框名称属性是不同的。

即如果 A 组有“smthng”复选框,B 组可以有“smthng else”,但不能有“smthng”。

(从设计 Angular 来看,这也是有道理的,因为如果它们具有相同的名称,则 A 组中的“smthng”和 B 组中的“smthng”之间实际上没有区别。)

关于javascript - 由于某种原因,CheckboxGroup 中的项目使用相同的管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6844922/

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