Alfresco javascript 获取自定义数据列表
Alfresco javascript get custom DataList
我创建了一个自定义数据列表并在其上添加了一些值。现在我尝试在将由规则触发的脚本中获取数据值。
到目前为止,我很难使用以下代码获取名为 test
的自定义数据列表:
var site = siteService.getSite(document.siteShortName);
var dataLists = site.getContainer("datalists");
var listCompany = dataLists.childByNamePath("test");
它的 return 似乎是一个空对象,但我不明白为什么,我尝试使用
"dataLists",
"datalists" and
"data-lists"
但仍然是空对象...
编辑: 查看 solr 日志后,我收到一条错误消息,指出模型跟踪失败 NamespaceException。之前已经定义了像我的模型这样的东西
第二个问题:如何访问datalist里面的数据? getElementById() 会起作用吗?
test
dataList 就像:
'test'
field1: name,
field2: company,
field3:number,
field4: number2
如果您使用的是服务器端 javascript,getElementById() 将不起作用,这适用于客户端 javascript。
让我试试我的自定义数据列表,然后会更新给您。
与此同时,您能否分享 alfresco.log 和 solr.log 文件错误?
希望以下脚本能帮助您解决数据列表问题。
var site = siteService.getSite(document.siteShortName);
var dataListsContainer = site.getContainer("datalists");
var dataLists = dataListsContainer.getChildren();
logger.log("Data List length : " + dataLists.length);
for(var x=0;x<dataLists.length;x++)
{
var dataList = dataLists[x]; //Get the current data list
var props = dataList.getProperties(); //Read the data list properties
var title = props["cm:title"]; //read the datalist's title property
logger.log("Data List title : " + title);
if (title.indexOf("<data_list_title_goes_here>") > -1){ //check whether it's the required data list or not
var dataListItems = dataList.getChildren(); //get the all datalistitems
logger.log("Total dataListItems : " + dataListItems.length +" for " + title);
for(var y = 0;y<dataListItems.length;y++) //Iterate all the datalistitems one by one
{
var dataListItem = dataListItems[y];
var dataListItemProps = dataListItem.getProperties(); //Read all the properties of the current datalistitem
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
}
}
}
我创建了一个自定义数据列表并在其上添加了一些值。现在我尝试在将由规则触发的脚本中获取数据值。
到目前为止,我很难使用以下代码获取名为 test
的自定义数据列表:
var site = siteService.getSite(document.siteShortName);
var dataLists = site.getContainer("datalists");
var listCompany = dataLists.childByNamePath("test");
它的 return 似乎是一个空对象,但我不明白为什么,我尝试使用
"dataLists",
"datalists" and
"data-lists"
但仍然是空对象... 编辑: 查看 solr 日志后,我收到一条错误消息,指出模型跟踪失败 NamespaceException。之前已经定义了像我的模型这样的东西
第二个问题:如何访问datalist里面的数据? getElementById() 会起作用吗?
test
dataList 就像:
'test'
field1: name,
field2: company,
field3:number,
field4: number2
如果您使用的是服务器端 javascript,getElementById() 将不起作用,这适用于客户端 javascript。
让我试试我的自定义数据列表,然后会更新给您。 与此同时,您能否分享 alfresco.log 和 solr.log 文件错误?
希望以下脚本能帮助您解决数据列表问题。
var site = siteService.getSite(document.siteShortName);
var dataListsContainer = site.getContainer("datalists");
var dataLists = dataListsContainer.getChildren();
logger.log("Data List length : " + dataLists.length);
for(var x=0;x<dataLists.length;x++)
{
var dataList = dataLists[x]; //Get the current data list
var props = dataList.getProperties(); //Read the data list properties
var title = props["cm:title"]; //read the datalist's title property
logger.log("Data List title : " + title);
if (title.indexOf("<data_list_title_goes_here>") > -1){ //check whether it's the required data list or not
var dataListItems = dataList.getChildren(); //get the all datalistitems
logger.log("Total dataListItems : " + dataListItems.length +" for " + title);
for(var y = 0;y<dataListItems.length;y++) //Iterate all the datalistitems one by one
{
var dataListItem = dataListItems[y];
var dataListItemProps = dataListItem.getProperties(); //Read all the properties of the current datalistitem
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
logger.log(dataListItemProps["namespace:propertyname"]); //read your custom property here
}
}
}