Alfresco javascript获取自定义DataList

时间:2016-06-27 14:21:59

标签: javascript alfresco datalist

我已经创建了一个自定义数据列表并在其上放置了一些值。现在,我尝试在脚本中获取将由规则触发的数据值。 到目前为止,我使用此代码获取名为test的自定义数据列表时遇到了麻烦:

var site = siteService.getSite(document.siteShortName);
var dataLists = site.getContainer("datalists");
var listCompany = dataLists.childByNamePath("test");

似乎它返回一个null对象,但我无法弄明白为什么,我试过

"dataLists", 
"datalists" and 
"data-lists" 

但仍为null对象... 编辑:在查看int solr log后,我遇到一个错误,指出模型跟踪失败了NamespaceException。像我的模型之类的东西已经在之前定义了

第二个问题:如何访问datalist中的数据? getElementById()会起作用吗?

test dataList就像:

'test'  
  field1: name, 
  field2: company, 
  field3:number, 
  field4: number2

2 个答案:

答案 0 :(得分:4)

我希望以下脚本可以帮助您解决数据主义问题。

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
        }
    }       
}

答案 1 :(得分:0)

如果您正在使用服务器端javascript,则getElementById()将无效,这适用于客户端javascript。

让我尝试使用我的自定义数据列表并更新您。 同时,请你分享一下,alfresco.log&amp; solr.log文件错误?