我试图弄清楚如何从sharepoint托管的角度共享点应用中获取至少当前登录的sharepoint用户ID。我无法在角度以外调用库并获取值并将其应用于我的角度模型。有谁知道怎么做?
即使我使用$ windows服务或尝试使用此code
,_spcontextinfo也为null我无法弄清楚如何使用类似
的方式调用spservicesvar thisUsersValues = $().SPServices.SPGetCurrentUser({ fieldNames: ["ID", "Name", "SIP Address"], debug: false });
https://spservices.codeplex.com/wikipage?title=$().SPServices.SPGetCurrentUser&referringTitle=Documentation
我需要做什么才能调用通常适用于常规javascript的代码?
答案 0 :(得分:0)
使用没有任何库的SharePoint登录用户将会有点困难。理想情况下,您可能希望使用jQuery和SPServices.JS,这将是相对简单的。但是,由于您不想使用第三方库,我建议您通过JavaScript调用内置于Web服务中的一个SharePoints。
答案 1 :(得分:0)
您可以使用SharePoint客户端对象模型。这是一个可能的解决方案
建立一个角度工厂
//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]);