我试图将nodeRef的字符串表示作为参数传递给存储库,如下所示:
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)
然而,当我查看调试器并在存储库端输出 url.templateArgs。时,第一个' /'删除工作空间后。
答案 0 :(得分:1)
输入auf Alfresco.util.NodeRef应该是NodeRef-Format中的字符串,例如工作区:// SpacesStore / 02F .... 返回值是一个JS对象,其中包含属性'uri' 因此,如果commandeObj.commandeNodeRef是NodeRef-Format中的String,那么以下代码将完成这项工作(添加'.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);
答案 1 :(得分:1)
如果你看一下actions.js(网络客户端JavaScript文件),你会看到以下内容:
var jsNode = record.jsNode,
nodeRef = jsNode.isLink ? jsNode.linkedNode.nodeRef : jsNode.nodeRef,
strNodeRef = nodeRef.toString()........
然后在行动中使用该网址: 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()