HTML页面中的Sharepoint上下文信息

Tie*_*eDK 7 javascript sharepoint angularjs

我正在通过将javascript和html文件上传到文档库来在Sharepoint 2013中构建SPA.我试图通过sp.js库访问上下文信息来获取当前用户信息.但我得到这个错误:

_spPageContextInfo is not defined
Run Code Online (Sandbox Code Playgroud)

在我的index.aspx文件中,我包含以下js:

<script src="/_layouts/1033/init.js"></script>
<script src="/_layouts/MicrosoftAjax.js"></script>
<script src="/_layouts/sp.core.js"></script>
<script src="/_layouts/sp.runtime.js"></script>
<script src="/_layouts/sp.js"></script>
Run Code Online (Sandbox Code Playgroud)

我还将它包含在index.aspx文件的顶部:

<%@ Page language="C#" %>
<%@ Register Tagprefix="SharePoint"
 Namespace="Microsoft.SharePoint.WebControls"
 Assembly="Microsoft.SharePoint, Version=14.0.0.0, 
 Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
Run Code Online (Sandbox Code Playgroud)

在我的js文件中,我有以下代码:

$(document).ready(function() {
  // wait for the sharepoint javascript libraries to load, then call the function 'Initialize'
  ExecuteOrDelayUntilScriptLoaded(runCode, "sp.js");   
});
function runCode() {
    var userid= _spPageContextInfo.userId;
}
Run Code Online (Sandbox Code Playgroud)

应该提到我使用Angular JS构建应用程序,并使用Angular UI路由器库在页面之间导航.

文档库位于侧面集合中的子网站内.

例如

intra.xxx.xxx/xxx/index.aspx

有什么建议?

Tie*_*eDK 1

事实证明,我显然缺少对 index.aspx 文件的一些共享点依赖项。

解决方案

index.aspx 的开头:

<%@ Page language="C#" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

标头中的脚本:

<!--Sharepoint Dependencies-->
    <script src="/_layouts/1033/init.js"></script>
    <script src="/_layouts/1033/core.js"></script>
    <script src="/_layouts/MicrosoftAjax.js"></script>
    <script src="/_layouts/SP.Core.js"></script>
    <script src="/_layouts/SP.Runtime.js"></script>
    <script src="/_layouts/SP.js"></script>
    <script src="/_layouts/SP.UI.Dialog.js"></script>
    <script src="/_layouts/ScriptResx.ashx?culture=en%2Dus&name=SP%2ERes"></script>
Run Code Online (Sandbox Code Playgroud)

身体:

<!-- required: SharePoint FormDigest -->
<form runat="server">
  <SharePoint:FormDigest runat="server"></SharePoint:FormDigest>
</form>
Run Code Online (Sandbox Code Playgroud)