2013-08-24 2 views
0

Я пытаюсь передать строковое представление nodeRef в качестве параметра в хранилище следующим образом:
url: Alfresco.constants.PROXY_URI + "synapture/commande/commande-get/" + new Alfresco.util.NodeRef(commandeObj.commandeNodeRef)Как передать URL-адрес рабочей области в качестве параметра в репозиторий в общей папке alfresco?

однако, когда я смотрю на отладчик и выводить url.templateArgs. на стороне хранилища первое «/» после рабочего пространства лишено.

+0

Можете ли вы дать результат Alfresco.util.NodeRef (commandeObj.commandeNodeRef) и просто commandeObj.commandeNodeRef? –

+0

Они оба отлично смотрелись в браузере javascript debugger –

ответ

1

Ввод auf Alfresco.util.NodeRef должен быть строкой в ​​NodeRef-Format, например. Рабочие пространства: // SpacesStore/02f .... Возвращаемое значение - это объект JS, который содержит среди других свойство 'uri' Итак, если commandeObj.commandeNodeRef является строкой в ​​NodeRef-формате, тогда следующий код выполнит работу (добавить '.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} 

Внутри вашего Backend 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

Если посмотреть на actions.js (веб-клиента JavaScript-файл), вы увидите следующее:

var jsNode = record.jsNode, 
      nodeRef = jsNode.isLink ? jsNode.linkedNode.nodeRef : jsNode.nodeRef, 
strNodeRef = nodeRef.toString()........ 

URL-адрес затем используется в действии: documentDetailsUrl: fnPageURL ("документ -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()