VSTS Dashboard Widget getWorkItem необязательный параметр раскрыть
Я пишу виджет панели инструментов VSTS, используемый для отслеживания рабочих элементов
Однако я сталкиваюсь с проблемой при использовании функции getWorkItem(). Я хочу получить идентификаторы всех возможностей данного эпоса (я уже знаю эпический идентификатор). Я уверен, что если я установлю параметр расширения getWorkItem() на "Все", я получу список всех функций и их соответствующих идентификаторов. К сожалению, я не знаю, как определить "тип" параметра расширения и как правильно передать его в качестве значения функции getWorkItem().
Вот мой код:
VSS.require(["VSS/Service", "TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient"],
function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi) {
WidgetHelpers.IncludeWidgetStyles();
VSS.register("myapp", function () {
var fetchData = function (widgetSettings) {
const epicID = 123456;
// Get a WIT client to make REST calls to VSTS
return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).getWorkItem(123456, null, null, All).
then(
//Successful retrieval of workItems
function (workItems) {
$('#myText').text(JSON.stringify(workItems));
console.log(workItems);
// Use the widget helper and return success as Widget Status
return WidgetHelpers.WidgetStatusHelper.Success();
},
function (error) {
// Use the widget helper and return failure as Widget Status
return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
});
}
Вот ссылка на VSTS для расширения. Она объясняет, какими могут быть значения, но не говорит, как передать ее в функцию getWorkItem().
Я хотел бы установить для необязательного параметра расширения функции "Все", но не знаю его тип и как правильно определить и использовать его.
2 ответа
Исходя из исходного кода, это enum, поэтому вы можете указать целое число (например, 4) в функции getWorkItem.
export enum WorkItemExpand {
None = 0,
Relations = 1,
Fields = 2,
Links = 3,
All = 4,
}
Использование перечисления хорошо, но вы также можете передать значение из модуля 'TFS/WorkItemTracking/Contracts'. Вы можете найти ссылку здесь (показывает путь к модулю, класс и перечисления):
Ссылка выше взята из Справочника по API TFS WorkItemTracking, который можно найти здесь:
Вот как вы можете добавить его в свой код:
- Объявите модуль 'TFS/WorkItemTracking/Contracts'
- Передайте модуль в обратный вызов ('_Contracts' в примере ниже)
- Используйте "_Contracts" по мере необходимости
Вот ваш код, обновленный для использования модуля Contracts:
VSS.require([
"VSS/Service",
"TFS/Dashboards/WidgetHelpers",
"TFS/WorkItemTracking/RestClient",
"TFS/WorkItemTracking/Contracts"],
function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi, _Contracts) {
WidgetHelpers.IncludeWidgetStyles();
VSS.register("myapp", function () {
var fetchData = function (widgetSettings) {
const epicID = 123456;
// Get a WIT client to make REST calls to VSTS
return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).
getWorkItem(123456, null, null, _Contracts.WorkItemExpand.All).
then(
//Successful retrieval of workItems
function (workItems) {
$('#myText').text(JSON.stringify(workItems));
console.log(workItems);
// Use the widget helper and return success as Widget Status
return WidgetHelpers.WidgetStatusHelper.Success();
},
function (error) {
// Use the widget helper and return failure as Widget Status
return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
});
}
});
});
Надеюсь, это поможет!