Я довольно новичок в 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, например ...