从sharepoint托管角度应用程序获取当前登录用户

时间:2014-06-09 11:07:59

标签: javascript angularjs sharepoint sharepoint-2013

我试图弄清楚如何从sharepoint托管的角度共享点应用中获取至少当前登录的sharepoint用户ID。我无法在角度以外调用库并获取值并将其应用于我的角度模型。有谁知道怎么做?

即使我使用$ windows服务或尝试使用此code

,_spcontextinfo也为null

我无法弄清楚如何使用类似

的方式调用spservices
var thisUsersValues = $().SPServices.SPGetCurrentUser({ fieldNames: ["ID", "Name", "SIP Address"], debug: false });

https://spservices.codeplex.com/wikipage?title=$().SPServices.SPGetCurrentUser&referringTitle=Documentation

我需要做什么才能调用通常适用于常规javascript的代码?

2 个答案:

答案 0 :(得分:0)

使用没有任何库的SharePoint登录用户将会有点困难。理想情况下,您可能希望使用jQuery和SPServices.JS,这将是相对简单的。但是,由于您不想使用第三方库,我建议您通过JavaScript调用内置于Web服务中的一个SharePoints。

SharePoint Web Services

答案 1 :(得分:0)

您可以使用SharePoint客户端对象模型。这是一个可能的解决方案

http://www.instantquick.com/index.php/using-the-sharepoint-client-object-model-in-angularjs-apps?c=elumenotion-blog-archive/random-whatnot

建立一个角度工厂

//Angular service Wrapper for ClientContext executeQuery.
//The $q service makes it easy to wrap SharePoint's context.executeQueryAsync for use with Angular
var module = angular.module('iqPart', [])
 .factory('SharePointService', ['$q', function ($q) {
   var SharePointService = {};
   SharePointService.executeQuery = function (context) {
     var deferred = $q.defer();
     context.executeQueryAsync(deferred.resolve, function (o, args) {
       deferred.reject(args);
     });
     return deferred.promise;
  };
  return SharePointService;
}]);

Angular Controller中的用法

var iqAppPartModule = angular.module('iqAppPartModule', []);
var iqAppPartController = iqAppPartController || {};

iqAppPartController.IQAppPart = function ($scope, sharePointService) {
  //Make a request for the user
  var ctx = SP.ClientContext.get_current();
  var user = ctx.get_web().get_currentUser();
  ctx.load(user);
 sharePointService.executeQuery(ctx)
   .then(function () {
     $scope.UserName = user.get_title();
   },
   function (error) {
     alert(error.get_message());
 });
};
iqAppPartModule.controller('IQAppPart', ['$scope', 'SharePointService', iqAppPartController.IQAppPart]);
相关问题