我正在尝试将 nodeRef 的字符串表示形式作为参数传递给存储库,如下所示:
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)
但是,当我查看调试器并输出url.templateArgs 时。在存储库侧,工作区被剥离后的第一个“/”。
我正在尝试将 nodeRef 的字符串表示形式作为参数传递给存储库,如下所示:
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)
但是,当我查看调试器并输出url.templateArgs 时。在存储库侧,工作区被剥离后的第一个“/”。
输入 auf Alfresco.util.NodeRef 应该是 NodeRef 格式的字符串,例如 workspaces://SpacesStore/02f...。返回值是一个 JS 对象,其中包含一个属性“uri”所以,如果 commandeObj.commandeNodeRef 是NodeRef 格式的字符串,然后以下代码将完成这项工作(添加“.uri”以获取 URI 格式的 NodeRef):
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef).uri
您的 Backend-Webscript (*desc.xml) 应定义如下(顺便说一句,这不是一个好的 RESTful URL ;-)):
synapture/commande/commande-get/{store_type}/{store_id}/{id}
在您的后端 Webscript 中:
var storeType = url.templateArgs.store_type,
storeId = url.templateArgs.store_id,
id = url.templateArgs.id,
nodeRef = storeType + "://" + storeId + "/" + id,
node = utils.getNodeFromString(nodeRef);
如果您查看 actions.js(网络客户端 JavaScript 文件),您将看到以下内容:
var jsNode = record.jsNode,
nodeRef = jsNode.isLink ? jsNode.linkedNode.nodeRef : jsNode.nodeRef,
strNodeRef = nodeRef.toString()........
然后在操作中使用该 url: documentDetailsUrl: fnPageURL("document-details?nodeRef=" + strNodeRef),
对象recordd.jsNode 在别处定义:
record.jsNode = new Alfresco.util.Node(response.json.item.node);
因此,您可能可以在您的情况下执行以下操作: 1. 只需将 toString() 添加到新创建的 Alfresco.Util.NodeRef 对象。2. 如果这不起作用,创建一个 Alfresco.util.Node 并执行 toString()