【发布时间】:2016-02-04 18:56:17
【问题描述】:
我正在通过将 javascript 和 html 文件上传到文档库来在 Sharepoint 2013 中构建 SPA。我试图通过 sp.js 库访问上下文信息来获取当前用户信息。但我得到这个错误:
_spPageContextInfo is not defined
在我的 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>
我还在 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" %>
在我的 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;
}
应该提到的是,我使用 Angular JS 来构建应用程序,并且我使用 Angular UI Router 库在页面之间导航。
文档库位于边集中的子站点内。
例如
intra.xxx.xxx/xxx/index.aspx
有什么建议吗?
【问题讨论】:
-
你是如何加载你的上下文的?
-
index.aps 位于 sharepoint (intra.xxx.xxx/index.aspx) 内的文档库中。在 index.aspx 上,我正在加载所有 sp.js 文件。我使用 Angular ui 路由器进行路由。
-
哪个 Sharepoint 版本?页面在哪里?文档库还是文件系统?
-
魔线投掷错误?你能贴出代码吗,我认为你必须在加载 sp.js 库后通过manual initialization 启动 Angular 应用程序
-
为什么这个问题被否决了?我错过了什么吗?
标签: javascript angularjs sharepoint