0

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

但是,当我查看调试器并输出url.templateArgs 时。在存储库侧,工作区被剥离后的第一个“/”。

4

2 回答 2

1

输入 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);
于 2013-08-26T10:05:33.620 回答
1

如果您查看 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()

于 2013-08-26T10:51:02.807 回答