var nodeRef = "workspace://SpacesStore/2112480f-f0e8-461b-9564-78e7225f177c";
try {
var currNode = companyhome.findNode(nodeRef);
getNodeList(currNode);
removeNode(currNode);
}
catch(err) {
logger.log("Exception: " + err.message );
}
function removeNode(node) {
node.remove();
logger.log(node.displayPath + "/" + node.name + " is deleted");
return true;
}
问题是节点没有被删除,logger.log 没有记录任何内容...
感谢任何支持...
最佳答案
您复制的代码不正确:)。
首先你要做 getNodeList(currNode); & 然后删除Node(currNode);
如果我从 getNodeList 的链接查看代码:
// List all the nodes under folder
function getNodeList(currNode) {
// Check whether node is document
if(currNode.isDocument) return removeNode(currNode);
// Check whether node is folder
if (currNode.isContainer) {
var nodes = currNode.children;
for (var i=0; i<nodes.length; i++) {
if(nodes[i].isDocument) removeNode(nodes[i]);
else if (nodes[i].isContainer) getNodeList(nodes[i]);
}// end for
}// end if
return true;
}
然后它已经在那里执行了removeNode(),并且在代码中将其删除后,您将再次删除它。
因此,或者删除主代码中的 getNodeList() 或 removeNode() 。例如:
var nodeRef = "workspace://SpacesStore/2112480f-f0e8-461b-9564-78e7225f177c";
try {
var currNode = companyhome.findNode(nodeRef);
//getNodeList(currNode);
removeNode(currNode);
}
catch(err) {
logger.log("Exception: " + err.message );
}
function removeNode(node) {
logger.log(node.displayPath + "/" + node.name + " is deleted");
node.remove();
return true;
}
顺便说一句,首先删除节点然后将值打印到 logger.log 是一个不好的例子。因此,首先打印它们或捕获 bool 值(如果它被删除),然后打印它,如下所示:
function removeNode(node) {
if(node.remove())
logger.log(node.displayPath + "/" + node.name + " is deleted");
else
logger.log(node.displayPath + "/" + node.name + " is NOT deleted");
return true;
}
关于javascript - Javascript 删除露天节点不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079252/