javascript - 即使在被删除后,Kendo 树视图也会在列表框中选择项目的副本
问题描述
嘿,我在这里需要帮助。我已经在这工作了几个小时了,我只是找不到这段代码是如何恢复旧值的。
const onCheck = (e) => {
let listBox = $("#Sources").data("kendoListBox"),
treeView = $("#availableSources").data("kendoTreeView"),
selection = [],
getSelection = (items) => {
items.forEach(item => {
if (item.hasChildren) {
getSelection(item.items);
} else if (item.checked) {
selection.push(item);
}
});
};
if (e.node.attributes[3].value == "false") {
listBox.remove(listBox.items());
$("#Sources option[value='" + listBox.dataSource._data[0].value + "']").remove();
//selection.pop(listBox.dataSource._data[0]);
} else {
getSelection(treeView.dataSource.data());
if (selection.length) {
selection.forEach(item => {
listBox.add({
text: item.text,
value: item.id
});
});
}
}
}
例如,我检查了Github项目并将其放入列表框中就好了。它还将项目的 ID 添加到隐藏的选择组件中。
现在说我现在取消选中该项目:
伟大的!它从列表框和隐藏的选择组件中删除了该项目。但是,当我选择另一个项目时,比如GitHubIssues ,我不仅会在列表框中看到该项目,而且将前一个项目放入选择组件中。
它在列表框中有正确的项目,但我不确定为什么它保留以前的值?
解决方案
推荐阅读
- ansible - 在 Ansible 中省略 os_subnet 的变量 dns_nameservers
- java - 如何使用不同的用户凭据在 Selenium 中运行并行测试?
- android - 使用单个 NavHostFragment 为具有多个模块的应用程序导航
- docker - Docker compose:如何为共享卷的容器使用相同的用户/组 ID 和名称
- c++ - 无法在预期中转换
> 到模块 - shopify - 在 shopify 中使用 Storefront API 过滤产品
- c - 'break' 语句会分解多个 if 语句吗?
- zsh - oh-my-zsh 未完全加载 - 必须获取 .zshrc
- arrays - 快速重复同时
- docker - 从 Docker 内部推送到 Docker 私有注册表