谁能告诉我自己做错了什么?我尝试为Microsoft的团队服务信息中心创建自定义窗口小部件,但它似乎与文档不匹配。
我所做的就是调用一个简单的API,它假设包含现有查询的列表。我将结果记录在控制台中。但是我注销的结果与文档的结果具有不同的属性。
根据这里的.getQueries()API; REST Client APIs。假设返回'IPromise<Contracts.QueryHierarchyItem[]>'
,QueryHierarchyItem包含此处列出的成员列表; QueryHierarchyItem
我注销的对象看起来像这样:
Array
->Object
---> _links
------> html
---------> href
------> self
---------> href
------> _proto
---> createdDate
---> hasChildren
---> id
---> isFolder
---> isPublic
---> lastModifiedBy
------>displayName
------>id
------>_proto
---> lastModifiedDate
---> name
---> path
---> url
---> _proto_
它没有QueryHierarchyItem文档中描述的'children'
数组或布尔'isDeleted'
等属性。为什么会这样?我误解了什么吗?
VSS.require(["TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient"],
function(WidgetHelpers, TFS_Wit_WebApi) {
WidgetHelpers.IncludeWidgetStyles();
VSS.register("HelloWorldWidget2", function() {
var projectId = VSS.getWebContext().project.id;
var getQueryInfo = function(widgetSettings) {
//******CALL TO REST API*********//
return TFS_Wit_WebApi.getClient().getQueries(projectId)
.then(function(queries) {
console.log(queries);
return true;
});
};
return {
load: function(widgetSettings) {
// Set your title
var $title = $('h2.title');
$title.text('Query Details 3');
return getQueryInfo(widgetSettings);
}
}
});
VSS.notifyLoadSucceeded();
});
非常感谢任何帮助。
答案 0 :(得分:0)
getQueries()有三个可选参数:
- 展开:Contracts.QueryExpand。可选的。
- 深度:数量。可选的。
- includeDeleted:boolean。可选的。
默认情况下,深度为“0”,这意味着它不包含查询/文件夹中的任何子对象。因此默认情况下它将为空白。您可以查询的最大深度为2.尝试添加这些可选参数,以查看是否可以获得所需的结果。
有关可选参数的默认值,请参阅此链接了解详情:Get a list of queries。
答案 1 :(得分:0)
因为我也没有找到答案,所以我今晚玩了这个游戏,并获得了查询,以使用以下代码返回所有现有查询。第三个参数(深度)是一个有趣的东西,例如,如果您输入“ 5”,我不知道它是否会破坏,但是只有3个子级,等等。
“ VSS.require”行中需要使用“合同”模块-缺少相关文档...
VSS.require(["TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient", "TFS/WorkItemTracking/Contracts"],
function(WidgetHelpers, TFS_Wit_WebApi, contracts) {
WidgetHelpers.IncludeWidgetStyles();
VSS.register("HelloWorldWidget2", function() {
var projectId = VSS.getWebContext().project.id;
var getQueryInfo = function(widgetSettings) {
//******CALL TO REST API*********//
return TFS_Wit_WebApi.getClient().getQueries(projectId,contracts.All,2,false)
.then(
function (queries) {
console.log(JSON.stringify(queries));
return true;
});
};
return {
load: function(widgetSettings) {
// Set your title
var $title = $('h2.title');
$title.text('Query Details 3');
return getQueryInfo(widgetSettings);
}
}
});
VSS.notifyLoadSucceeded();
});