0

次のように、 nodeRef の文字列表現をパラメーターとしてリポジトリに渡そうとしています。
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)

ただし、デバッガーを見てurl.templateArgs. リポジトリ側では、ワークスペースの後の最初の「/」が削除されます。

4

2 に答える 2

1

actions.js (Web クライアント 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. 新しく作成された Alfresco.Util.NodeRef オブジェクトに toString() を追加するだけです。2. それが機能しない場合は、Alfresco.util.Node を作成し、toString() を実行します。

于 2013-08-26T10:51:02.807 に答える
1

入力 auf Alfresco.util.NodeRef は NodeRef-Format の文字列である必要があります。 NodeRef-Format の文字列の場合、次のコードがその役割を果たします (「.uri」を追加して、NodeRef を URI 形式で取得します)。

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 に答える