繁体   English   中英

Angularjs Sharepoint Rest API显示所有列

[英]Angularjs Sharepoint Rest API to showing all columns

我已经创建了一个非常基本的控制器来从SharePoint列表中提取数据,但是它仅提取基本的Title和created列。 它不会拉出我创建的任何列,而这正是我需要的列。 SP本身是否有设置可以声明可用于API?

我已经在以下站点使用过代码: http : //www.c-sharpcorner.com/article/retrieve-sharepoint-list-items-using-angularjs-with-single-a/

如此处所示:

 var appVar = angular.module('listApp', []); appVar.controller("controller1", function($scope){ GetListItems($scope, "List1"); }); function GetListItems($scope, listName){ $.ajax({ url: "https://example.com/sites/mysite/_api/web/lists/GetByTitle('"+listName+"')/items", method: "GET", async: false, headers: { "Accept": "application/json;odata=verbose" }, success: function(data){ $scope.items = data.d.results; }, error: function(sender,args){ console.log(args.get_message()); } }); } 
 <div ng-app="listApp"> <div id="App1" ng-controller="controller1"> <h1>First List Items</h1> <div ng-repeat="item in items"> <p>{{item.Title}}</p> </div> </div> </div> 

SP.ListItemCollection资源端点

/_api/web/lists/getByTitle('<list title>')/items

返回列表项的所有字段值,但对“用户/查找”字段有一些限制(出于性能原因):

如果是“用户/查找”字段,则默认情况下将仅检索查找ID。

在您的示例中,仅打印SP.ListItem.Title属性,如果要显示所有返回的列表项值,可以这样完成:

<div ng-repeat="item in items">    
     <p>{{item.Title}}</p>
     <p ng-repeat="(key, value) in item">
          {{ value }} 
     </p>    
</div>

其他一些建议:

<div ng-app="spApp" ng-controller="TasksController" >
        <table>
        <tr ng-repeat="t in tasks">
            <td ng-repeat="(key, value) in t" ng-if="!value.hasOwnProperty('__deferred') && !value.hasOwnProperty('__metadata')">
                   {{ value }}
             </td>
        </tr>
        </table>
</div>

控制者

angular.module('spApp',[])

.controller('TasksController', function($scope,$http) {
    $scope.tasks = [];

    $scope.getListItems = function(listTitle) {
        return $http({
               method : 'GET',
               url : _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items", 
               headers: { 'Accept':'application/json;odata=verbose' }
        });
      }

     $scope.getListItems("Tasks")
           .success(function(data, status) {
               $scope.tasks = data.d.results;
           })
           .error(function(data, status) {
               console.log("An error occured");
     });
});

只是为了进一步阐明这一点,我注意到原始的拉扯实际上是在带我的所有列,但是它们显示为静态名称,而不是显示名称,因此在显示整个范围时,我无法首先对其进行解密。

这样,我可以使用内部参考通过ng-repeat进行查看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM