由于某种原因,CheckboxGroup中的项使用相同的管理器
Items in CheckboxGroup are for some reason using the same Manager
好的,下面是一小段代码(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组有复选框" smthing ", B组可以有" smthing else"但不能有" smthing "。
(从设计角度来看,这也是有意义的,因为如果它们具有相同的名称,则A组中的"smthing"和b组中的"smthing"之间实际上没有区别)
试试这个:
var a = new TestA().createCheckboxes().items.get(0);
var b = new TestA().createCheckboxes().items.get(0);
console.log(a, b, a === b);
var c = new TestA().createCheckboxes().items.length;
var d = new TestA().createCheckboxes().items.length;
console.log(c, d);
As Ext.form.CheckboxManager是一个私有实用程序类,用于管理按名称分组的所有Ext.form.field.Checkbox字段。(从ExtJS 4.0.1文档),我认为你不会有任何问题,你认为。
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何访问声音管理器2创建的声音对象
- JS编译器/包管理器,用于版本控制
- Modx数据包管理器ext-all.js错误
- 根据单个用户的决定禁用谷歌标签管理器(选择退出)
- jquery在通过谷歌标签管理器交付时点击不工作
- 删除$fromtataLayertotal-google标签管理器
- 资源管理器9上的html5视频缓存
- 如何在 elfinder(一个 jquery 文件管理器插件)中只显示文件夹列表
- 在全局声音管理器对象上完成
- Web 驱动程序管理器更新错误:EACCES,权限被拒绝
- 声音管理器2 - 停止声音时失真
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中
- Connect资产管理器文件与req.url不匹配
- 谷歌标签管理器点击事件没有冒泡到家长
- 加载两个脚本块(使用lab.js作为加载管理器)
- 错误管理器:从标准Java到Servlet
- 谷歌地图API v3绘图管理器-地图不渲染
- 如何获得用户's在wso2api管理器中的配置文件