2
我有一個自定義Web腳本,我正在做一個表現時間問題。Alfresco:如何讓孩子的孩子與JavaScript(和FTL)
web腳本只通過uuid搜索節點,並返回一個帶有該節點的子節點屬性的JSON,並返回它們的子節點數。
我做這在我的JS:
function main()
{
var node = [];
node = search.findNode("workspace://SpacesStore/"+args["uuid"]);
model.childResults = node.children;
} main();
而且我FTL我這樣做:
<#macro parseChild objectModel>
<#assign loop = 0 />
<#list objectModel as child>
<#if (loop > 0) >, </#if>
{
"ID" : "${child.id}",
"PROP_NAME" : "${child.properties["name"]}",
<#if child.properties["cf:author"]?exists>
"AUTHOR" : "${child.properties["cf:author"]}",
</#if>
<#if child.properties["cf:data_cf"]?exists>
"PROP_CREATED" : "${xmldate(child.properties["cf:date_cf"]?datetime)}",
</#if>
"TYPE" : "${child.type}",
"NUMBER_CHILDS" : ${child.children?size}
<#assign loop = loop + 1 />
}
</#list>
<#if (childResults?size > 0)>
{
"nodes" :
[
<@parseChild childResults/>
]
}
<#else>
Empty
</#if>
問題是...我有超過200文件夾,每個文件夾也有30或40個子文件夾。當我做child.children?尺寸的webscript需要很多時間。
有沒有什麼快速的方法知道這200個文件夾上的孩子數量? child.children需要很長時間。
如果這種方法不存在,我有另一種可能性。如果這200個文件夾中的每個文件夾都至少有一個子項,則只返回一個參數。爲此,我只需要獲得每一個孩子。我怎樣才能做到這一點?我可以向每個孩子申請哪種方法來獲得第一個孩子,或知道這個孩子是否有孩子?
非常感謝!
Freemarker的提示(也許這是不是在發佈的問題,當你一直在使用的Freemarker版本):您可以使用[SEP-指令(HTTP:// freemarker.org/docs/ref_directive_list.html#autoid_96)而不是使用'loop'變量的機制。 –