如何获取Azure DevOps冲刺待办面板迭代选择器的选中迭代?
获取Azure DevOps Sprint待办面板选中迭代的方法
SDK.getConfiguration只能获取扩展的静态配置参数,无法拿到用户动态选择的迭代,你可以通过以下两种方式实现需求:
方法一:订阅迭代切换事件
Azure DevOps页面会广播迭代选择变更的事件,通过VSS.EventService订阅ms.vss-work-web.iteration-changed事件,就能实时获取选中的迭代数据:
VSS.require(["VSS/Events"], function(Events) { // 订阅迭代变更事件 Events.getService().attachEvent("ms.vss-work-web.iteration-changed", (args) => { const selectedIteration = args.iteration; // 拿到选中迭代的核心信息 console.log("迭代ID:", selectedIteration.id); console.log("迭代名称:", selectedIteration.name); console.log("迭代路径:", selectedIteration.path); }); });
方法二:主动获取当前选中迭代
如果需要在页面加载时直接获取选中的迭代,可以解析页面URL的iterationId参数,再通过Work REST API获取迭代详情:
VSS.require(["TFS/Work/RestClient"], function(WorkClient) { // 获取当前项目和团队上下文 const webContext = VSS.getWebContext(); const workClient = WorkClient.getClient(); // 解析URL中的迭代ID参数 const urlParams = new URLSearchParams(window.location.search); const iterationId = urlParams.get("iterationId"); if (iterationId) { // 调用API获取迭代详情 workClient.getIteration(webContext.project.id, webContext.team.id, iterationId) .then(iteration => { console.log("当前选中迭代:", iteration); }); } });
注意事项
- 扩展需要在
vss-extension.json中声明vso.work权限:"scopes": [ "vso.work" ] - 确保代码在
VSS.init完成后执行,避免API调用失败。
内容的提问来源于stack exchange,提问作者Trks
相关产品推荐
相关产品推荐

