如何将工作区url作为参数传递到alfresco share中的存储库?
我试图将nodeRef的字符串表示形式作为参数传递给存储库,如下所示:如何将工作区url作为参数传递到alfresco share中的存储库?,alfresco,alfresco-share,Alfresco,Alfresco Share,我试图将nodeRef的字符串表示形式作为参数传递给存储库,如下所示:url:Alfresco.constants.PROXY_URI+“synapture/commande/commande get/”+new Alfresco.util.nodeRef(commandeObj.commandeNodeRef) 但是,当我查看调试器并在存储库侧输出url.templateArgs.时,工作区剥离后的第一个“/”。输入auf Alfresco.util.NodeRef应该是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): 您的后端Webscript(*desc.xml)应定义如下(顺便说一句,这不是一个好的RESTful URL;-): 在后端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(web客户端JavaScript文件),您将看到以下内容:
var jsNode = record.jsNode,
nodeRef = jsNode.isLink ? jsNode.linkedNode.nodeRef : jsNode.nodeRef,
strNodeRef = nodeRef.toString()........
该url随后将用于以下操作:
documentDetailsUrl:fnPageURL(“文档详细信息?nodeRef=“+strNodeRef”),
对象recordd.jsNode在别处定义:
record.jsNode = new Alfresco.util.Node(response.json.item.node);
因此,在您的案例中,您可能可以执行以下操作:
1.只需将toString()添加到新创建的Alfresco.Util.NodeRef对象中。
2.如果这不起作用,创建一个Alfresco.util.Node并执行一个toString()你能给出Alfresco.util.NodeRef(commandeObj.commandeNodeRef)和just commandeObj.commandeNodeRef的结果吗?在浏览器javascript调试器中检查它们都很好
var jsNode = record.jsNode,
nodeRef = jsNode.isLink ? jsNode.linkedNode.nodeRef : jsNode.nodeRef,
strNodeRef = nodeRef.toString()........
record.jsNode = new Alfresco.util.Node(response.json.item.node);