Правильный VSS.register () возвращает синтаксис - PullRequest
0 голосов
/ 27 апреля 2018

Я довольно новичок в VSTS и занимаюсь разработкой пользовательских виджетов. Я следовал примеру учебника: Добавить виджет панели инструментов

Вот следующий код JS для файла index.html:

<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>

Уведомление : Это очень простой пример, поскольку есть NO вызовов VSS API или запросов ajax.

Что делает return WidgetHelpers.WidgetStatusHelper.Success();? Я также не понимаю, что делает VSS.notifyLoadSucceeded();. Если бы я хотел делать вызовы API через ajax (асинхронные запросы), то где в моем коде я бы разместил эти операторы?

Взгляните на следующие строки кода, которые кажутся работающими ... Я не уверен, что это правильный способ использовать эти операторы VSS:

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();
    });

Если кто-то может ответить на следующие пули, это было бы здорово:

  • Что делает WidgetHelpers.WidgetStatusHelper.Success ()?
  • Что делает VSS.notifyLoadSucceeded ()?
  • Когда и где я должен их использовать?
  • Есть ли документация по функциям, предоставляемым VSS.Services? Например, когда мне требуется «VSS / Аутентификация / Сервисы», как я должен знать, как использовать VSS_Auth_Service, не обращаясь к этому учебнику? Есть ли справочный документ по API для всех клиентов?

Примечание : Следующая ссылка бесполезна, поскольку в ней отсутствуют вызовы определенных функций для определенных служб в require, например ...

1 Ответ

0 голосов
/ 30 апреля 2018

На ваши вопросы:

Что делает WidgetHelpers.WidgetStatusHelper.Success ()?

WidgetHelpers.WidgetStatusHelper.Success() используется для сообщения о том, что function (widgetSettings) были успешно выполнены. И вы также можете обратиться к блогу Создание виджета VSTS для панели управления .

What does VSS.notifyLoadSucceeded() do?

VSS.notifyLoadSucceeded() используется для отображения успешной загрузки необходимых библиотек. Как API описывает:

Уведомляет хост о том, что добавочный номер успешно загружен (перестает отображаться индикатор загрузки)

Когда и где я должен их использовать?

WidgetHelpers.WidgetStatusHelper.Success() требуется в конце загрузки или перезагрузки чего-либо. И VSS.notifyLoadSucceeded() необходим в конце обратного вызова, чтобы указать, что добавочный номер успешно загружен.

Есть ли документация по функциям, предоставляемым VSS.Services? Например, когда мне требуется «VSS / Аутентификация / Услуги», как я должен знать, как использовать VSS_Auth_Service, не глядя на это один учебник для этого? Есть ли справочный документ по API где-нибудь для всех? клиенты?

К сожалению, таких документов нет, кроме Visual Studio Services Web Extension SDK и , например, некоторых расширений .

...