Javascript csom访问页面属性

God*_*win 5 javascript sharepoint sharepoint-2013 csom

我在SharePoint 2013 Onpremise"站点页面"库中有一些wiki页面.我在库中创建了一个"优先级"列.我想从客户端访问页面属性.我知道这可以从服务器端通过以下代码实现:

SPContext.Current.ListItem["FieldName"]
Run Code Online (Sandbox Code Playgroud)

但我想从客户端访问页面属性,是否可能?

Vad*_*hev 9

由于SPContext.Current获取当前HTTP请求的上下文并SPContext.Current.ListItem返回当前的List Item,因此我假设您需要在JSOM中使用类似的功能.

在SharePoint中,结构_spPageContextInfo在客户端的每个页面上都可用,在某种程度上可以认为与 SPContext.Current类似.特别是,暴露以下属性以标识当前列表项:

  • pageListId - 获取当前列表唯一ID
  • pageItemId - 获取当前列表项ID

如何使用JSOM检索当前列表项

以下函数演示了如何检索当前List Item:

function getCurrentListItem(success, error)
{
   var context = SP.ClientContext.get_current();
   var web = context.get_web(); 
   var currentList = web.get_lists().getById(_spPageContextInfo.pageListId); 
   var currentListItem = currentList.getItemById(_spPageContextInfo.pageItemId);
   context.load(currentListItem);
   context.executeQueryAsync(
     function(){
        success(currentListItem);
     }, 
     error
   );
}
Run Code Online (Sandbox Code Playgroud)

用法

getCurrentListItem(
   function(listItem) {
       var priority = listItem.get_item('Priority'); 
       console.log(priority);
   },
   function(sender,args){
        console.log(args.get_message());    
   }
);
Run Code Online (Sandbox Code Playgroud)