【问题标题】:JSOM SharePoint 2013 Error while getting WorkflowSubscription获取 WorkflowSubscription 时出现 JSOM SharePoint 2013 错误
【发布时间】:2014-03-23 05:20:44
【问题描述】:

我按照 msdn 的说明通过 JSOM 获取 WorkflowSubscriptionService。

使用 SharePoint 2013 工作流服务客户端对象模型: http://msdn.microsoft.com/en-us/library/office/dn481315(v=office.15).aspx

var clientContext = SP.ClientContext.get_current();
var workflowServicesManager = SP.WorkflowServices.WorkflowServicesManager.newObject(clientContext, clientContext.get_web()); 
var workflowSubscriptionService = workflowServicesManager.getWorkflowSubscriptionService();

这三行总是抛出错误: TypeError: Object [object Object] 没有方法'get_context' 消息:“对象 [对象对象] 没有方法 'get_context'” 堆: (...) 获取堆栈:函数(){[本机代码]} 设置堆栈:函数(){[本机代码]} 原型:错误

我找不到错误。这是一个已知的错误吗?

【问题讨论】:

    标签: javascript sharepoint sharepoint-2013 csom


    【解决方案1】:

    出现这些错误是因为指定的对象尚未加载。

    为了使用 SharePoint 2013 工作流服务客户端对象模型,应加载以下 JSOM 库:

    • SP.js
    • SP.Runtime.js
    • SP.WorkflowServices.js

    您可以使用例如SP.SOD.executeFunc(SharePoint JavaScript 库)或jQuery.getScript()(jQuery 库)来确保已加载指定的文件。

    例子:

    var scriptbase = _spPageContextInfo.webAbsoluteUrl + "/_layouts/15/";    
    $.getScript(scriptbase + "SP.js", function () {    
        $.getScript(scriptbase + "SP.Runtime.js", function () {    
            $.getScript(scriptbase + "SP.WorkflowServices.js", function () {
    
                var clientContext = SP.ClientContext.get_current();
                var workflowServicesManager = SP.WorkflowServices.WorkflowServicesManager.newObject(clientContext, clientContext.get_web()); 
                var workflowSubscriptionService = workflowServicesManager.getWorkflowSubscriptionService();    
    
                //... 
    
            });    
        });   
    });    
    

    【讨论】:

      【解决方案2】:

      确保在尝试获取上下文之前验证 CSOM 已加载。下面是一个示例,说明如何在加载 SharePoint 的 JS 后验证您的代码是否正在执行。在这种情况下,我还将登录到 CSOM 使用 jQuery 加载的 div。

      $(document).ready(function()
      {
          SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() 
          {
              $('div#log').append("SharePoint Client Object Model Loaded<br/>");
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-25
        • 1970-01-01
        相关资源
        最近更新 更多