首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从myTasks获得mySite

从myTasks获得mySite
EN

Stack Overflow用户
提问于 2016-07-05 07:27:41
回答 1查看 166关注 0票数 0

你好,我试图从SharePoint2013获取当前用户的myTasks。我尝试过使用Rest-API和JSON,但是总是会出现错误。根据调试器ExecuteOrDelayUntilScriptLoaded is undefined

这是我到目前为止得到的小Javascript:

代码语言:javascript
复制
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="/_layouts/15/MicrosoftAjax.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.0/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/knockout/knockout-2.1.0.js"></script>
<script type="text/javascript" src="/sps10/EDV/jquery.js"></script>

<script type="text/javascript">

var context, userSessionManager ,userSession , query , myTasks ;
$(document).ready(function () {
   ExecuteOrDelayUntilScriptLoaded(function () {
       context = SP.ClientContext.get_current();
       ExecuteOrDelayUntilScriptLoaded(function () {
           userSessionManager = new SP.WorkManagement.OM.UserOrderedSessionManager(context);
           userSession = userSessionManager.createSession();
           query = new SP.WorkManagement.OM.TaskQuery(context);
           myTasks = userSession.readTasks(query);
       }, "sp.workmanagement.js");
       getMyTasks();
   }, "sp.js");
});

function getMyTasks() {
    context.load(myTasks);
    context.executeQueryAsync(onGetMyTasksSuccess, onGetMyTasksFail);
}

// This function is executed if the above call is successful
function onGetMyTasksSuccess() {
    console.log("Successfully retrieved tasks...");
    var taskEnumerator = myTasks.getEnumerator();
    while (taskEnumerator.moveNext()) {
        var task = taskEnumerator.current;
        console.log("Task: " + task.get_id() + " - " + task.get_name());
    }
}

// This function is executed if the above call fails
function onGetMyTasksFail(sender, args) {
    console.log('Failed to get tasks. Error:' + args.get_message());
}


</script>

所以任何帮助或建议都会很好。如果您需要,我也可以用rest发布我的代码,但是错误保持不变。

谢谢你的帮助和时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 08:24:03

下面是使用javascript在html文件中查询我站点中的任务的方法。最重要的是以正确的顺序加载src文件,并且只使用jQuery文件,而不是普通的jQuery文件。

代码语言:javascript
复制
    <script src="/_layouts/15/init.js" type="text/javascript"></script>
    <script src="/_layouts/15/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="/_layouts/15/sp.core.js" type="text/javascript"></script>
    <script src="/_layouts/15/sp.runtime.js" type="text/javascript"></script>
    <script src="/_layouts/15/sp.js" type="text/javascript"></script>
    <script src="/_layouts/15/sp.workmanagement.js" type="text/javascript"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js" type="text/javascript"></script>

        <script type="text/javascript">

            'use strict';

            var context = new SP.ClientContext.get_current();
            var userSessionManager = new SP.WorkManagement.OM.UserOrderedSessionManager(context);
            var userSession = userSessionManager.createSession();
            var query = new SP.WorkManagement.OM.TaskQuery(context);
            var myTasks = userSession.readTasks(query);
            var tasks = [];


                getMyTasks();


            function getMyTasks() {
                context.load(myTasks);
                context.executeQueryAsync(onGetMyTasksSuccess, onGetMyTasksFail);
            }

            function onGetMyTasksSuccess() {
                console.log("Successfully retrieved tasks...");
                var taskEnumerator = myTasks.getEnumerator();
                while (taskEnumerator.moveNext()) {
                    var task = taskEnumerator.current;
                    console.log("Task: " + task.get_id() + " - Taskname: " + task.get_name() + " - Beschreibung: " + task.get_description() + " - dueDatum: " + task.get_dueDate() + " - Startdatum: " + task.get_startDate() + " - Persönlich: " + task.get_isPersonal() + " - Fertiggestellt: " + task.get_isCompleted());
                    tasks.push({
                        taskName: task.get_name(),
                        description: task.get_description(),
                        dueDate: task.get_dueDate(),
                        startDate: task.get_startDate(),
                        personally: task.get_isPersonal(),
                        complete: task.get_isCompleted()
                    });

                }

                console.log(tasks);

            }


            // This function is executed if the above call fails
            function onGetMyTasksFail(sender, args) {
                console.log('Failed to get tasks. Error:' + args.get_message());
            }

这里是一篇很好的小博客文章,包含了所有的可能性:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38197602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档