Azure devops 正确的VSS.register()返回语法

Azure devops 正确的VSS.register()返回语法,azure-devops,azure-devops-extensions,azure-devops-rest-api,Azure Devops,Azure Devops Extensions,Azure Devops Rest Api,我对VST和开发自定义小部件相当陌生。我遵循了示例教程: 以下是index.html文件的JS代码: <script type="text/javascript"> VSS.init({ explicitNotifyLoaded: true, usePlatformStyles: true }); VSS.require("TFS/Dashboards/WidgetHelpers

我对VST和开发自定义小部件相当陌生。我遵循了示例教程:

以下是index.html文件的JS代码:

<script type="text/javascript">
    VSS.init({                        
        explicitNotifyLoaded: true,
        usePlatformStyles: true
    });

    VSS.require("TFS/Dashboards/WidgetHelpers", function (WidgetHelpers) {
        WidgetHelpers.IncludeWidgetStyles();
        VSS.register("HelloWorldWidget", function () {                
            return {
                load: function (widgetSettings) {
                    var $title = $('h2.title');
                    $title.text('Hello World');

                    return WidgetHelpers.WidgetStatusHelper.Success();
                }
            }
        });
        VSS.notifyLoadSucceeded();
    });
</script>
如果有人能回答以下问题,那就太好了:

  • WidgetHelpers.WidgetStatusHelper.Success()做什么
  • VSS.notifyLoadSuccessed()做什么
  • 我应该在何时何地使用它们
  • 是否有关于VSS.Services提供的功能的文档?例如,当我需要“VSS/Authentication/Services”时,我怎么知道如何使用VSS_Auth_服务而不看一本教程呢?是否有适用于所有客户的API参考文档
注意:以下内容没有帮助,因为它缺少特定服务的特定函数调用,例如…

中的问题:

WidgetHelpers.WidgetStatusHelper.Success()做什么

WidgetHelpers.WidgetStatusHelper.Success()
用于告诉
函数(widgetSettings)
已成功执行。你也可以参考博客

VSS.notifyLoadSuccessed()
用于显示所需的库已成功加载。如前所述:

通知主机扩展已成功加载(停止显示加载指示器)

我应该在何时何地使用它们

加载或重新加载某物结束时需要
WidgetHelpers.WidgetStatusHelper.Success()
。并且在回调结束时需要使用
VSS.notifyLoadSuccessed()
,以指示扩展已成功加载

是否有关于VSS.Services提供的功能的文档? 例如,当我需要“VSS/身份验证/服务”时,我该怎么办 应该知道如何使用VSS_Auth_服务,而不必查看它 一个教程?有API参考文档吗 客户呢

遗憾的是,除了和之外,没有其他此类文件供您提问:

WidgetHelpers.WidgetStatusHelper.Success()做什么

WidgetHelpers.WidgetStatusHelper.Success()
用于告诉
函数(widgetSettings)
已成功执行。你也可以参考博客

VSS.notifyLoadSuccessed()
用于显示所需的库已成功加载。如前所述:

通知主机扩展已成功加载(停止显示加载指示器)

我应该在何时何地使用它们

加载或重新加载某物结束时需要
WidgetHelpers.WidgetStatusHelper.Success()
。并且在回调结束时需要使用
VSS.notifyLoadSuccessed()
,以指示扩展已成功加载

是否有关于VSS.Services提供的功能的文档? 例如,当我需要“VSS/身份验证/服务”时,我该怎么办 应该知道如何使用VSS_Auth_服务,而不必查看它 一个教程?有API参考文档吗 客户呢


不幸的是,没有这样的文件,除了./p>,问题是扩展可以正确地加载,但是在异步请求的中间。例如,在load函数中,我调用了一个激发一些ajax请求的函数。当请求返回时,函数已经返回了,因此我不知道何时返回WidgetHelpers.WidgetStatusHelper.Success(),何时执行VSS.notifyLoadSuccessed()语句。在VSTS示例中,他们编写了一个函数来返回.then()块中的WidgetHelpers.WidgetStatusHelper.Success(),而不是纯AJAX。在Ajax请求的成功块中返回吗?您可以共享您尝试的整个扩展吗?问题是扩展可以正确地加载,但在异步请求的中间。例如,在load函数中,我调用了一个激发一些ajax请求的函数。当请求返回时,函数已经返回了,因此我不知道何时返回WidgetHelpers.WidgetStatusHelper.Success(),何时执行VSS.notifyLoadSuccessed()语句。在VSTS示例中,他们编写了一个函数来返回.then()块中的WidgetHelpers.WidgetStatusHelper.Success(),而不是纯AJAX。我是否返回AJAX请求的success块?能否共享您尝试的整个扩展?
VSS.require(["TFS/Dashboards/WidgetHelpers", "VSS/Authentication/Services"], function (WidgetHelpers, VSS_Auth_Service) {
        WidgetHelpers.IncludeWidgetStyles();
        VSS.register("ajaxrequesttest", function () {
            var makeRequest = function (widgetSettings) {
                VSS.getAccessToken().then(function (token) {
                    // Format the auth header
                    var authHeader = VSS_Auth_Service.authTokenManager.getAuthorizationHeader(token);
                    var epicId = '#####';
                    var epicUrl = `https://myurl/${epicId}`;
                    //Make Ajax Request
                    $.ajax(epicUrl, {
                        headers: {
                            "Authorization": authHeader
                        },
                        timeout: 10000,
                        success: function (data, status, xhr) {
                            $('#myText').text("Success!");
                            var $list = $('<ul>');
                            $list.append($('<li>').text("Response: " + JSON.stringify(data)));
                            $('#myText').append($list);
                        },
                        error: function (xhr, status, error) {
                            $('#myText').text("Error!");
                            return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                        }
                    });
                });
                return WidgetHelpers.WidgetStatusHelper.Success();
            }
            return {
                load: function (widgetSettings) {
                    var $title = $('h2.title');
                    $title.text('Ajax Request Test');

                    return makeRequest(widgetSettings);
                }
            }
        });
        VSS.notifyLoadSucceeded();
    });
What does VSS.notifyLoadSucceeded() do?