如何将工作空间URL作为参数传递到alfresco共享中的存储库?

时间:2013-08-24 18:30:20

标签: alfresco alfresco-share

我试图将nodeRef的字符串表示作为参数传递给存储库,如下所示:
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)

然而,当我查看调试器并在存储库端输出 url.templateArgs。时,第一个' /'删除工作空间后。

2 个答案:

答案 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()