2016-09-20 99 views
0

我尝试了这些步骤,并且我创建了一个类似于此网站的示例扩展https://www.visualstudio.com/en-us/docs/integrate/extensions/get-started/nodeTFS网页访问(TFS 15)中的自定义菜单

但我需要传递参数到我打开使用这个新的扩展的网站。可能吗 ?

这样的参数:TFS正在运行的项目名称,环境(TFS URL)。

我在尝试在内部托管在IIS上的MVC应用程序中打开页面时遇到了错误,该应用程序在UI中使用Durandal,Knockout和HTML 5。

不能附上截图粘贴新的扩展脚本

"icons": { 

    }, 
    "contributions": [ 
     { 
      "id": "Fabrikam.HelloWorld", 
      "type": "ms.vss-web.hub", 
      "description": "Adds a 'Hello' hub to the Work hub group.", 
      "targets": [ 
       "ms.vss-work-web.work-hub-group" 
       ], 
      "properties": { 
       "name": "Hello Testing", 
       "order": 99, 
       "uri": "http://test-server/AdminConsole2015Beta/#/tfsreports/boc_projects/ALM/alm-beta-app1/0" 
      } 
     } 
    ], 
    "scopes": [ 
     "vso.work" 
    ], 
    "files": [ 
     { 
      "path": "tfsReports.html", "addressable": true 
     }, 
     { 
      "path": "scripts", "addressable": true 
     }, 
     { 
      "path": "sdk/scripts", "addressable": true 
     } 

    ] 
} 

部分在上面的脚本我想这将打开使用迪朗达尔路由后的页面tfsreports.html URI属性打开URL。这可能吗?见截图做参考Extension jason script

+0

你叫什么通过的细节意思参数到网站?您是否只想在HTML页面中显示TFS运行的项目名称和环境(TFS URL)?或者是其他东西? –

+0

你正在创建的扩展的类型是什么?您提供的代码是创建自定义集线器,但在标题中提到了自定义菜单。你想在TFS门户网站上显示该网站还是在浏览器中打开一个新标签页?您可以像项目名称TFS Url那样获取所需的参数,但是如何将它们传递到您的站点?通过URL参数? –

+0

对不起,我正在创建一个自定义集线器而不是菜单。我想通过像这样的参数http:// alm-test-test:8080/AdminConsole2015Beta /#/ tfsreports/boc_projects/{Project Name}/{TFS Url} –

回答

0

更新您的扩展,如下所示:

  1. 在manifest文件中,更新的“贡献”到“tfsReports.html”“URI”。

  "properties": { 
 
       "name": "Hello Testing", 
 
       "order": 99, 
 
       "uri": "tfsReports.html" 
 
      }

  • 添加以下在 “tfsReports.html” 内容:
  • <!DOCTYPE html> 
     
    <html xmlns="http://www.w3.org/1999/xhtml"> 
     
    <head> 
     
        <title>Hello World</title> 
     
        <script src="sdk/scripts/VSS.SDK.js"></script> 
     
    </head> 
     
    <body> 
     
        <script type="text/javascript">VSS.init();</script> 
     
        <h1>Hello World</h1> 
     
        <script type="text/javascript"> 
     
        VSS.init(); 
     
        VSS.ready(function() { 
     
         var webContext = VSS.getWebContext(); 
     
         var projectname = webContext.project.name; 
     
    \t var TFSUrl = webContext.collection.uri; 
     
         var reportFrame = document.getElementById("reportFrame"); 
     
    \t var finalurl = "http://test-server/AdminConsole2015Beta/#/tfsreports/boc_projects/ALM/alm-beta-app1/0/" + projectname + "/" + TFSUrl; 
     
    \t reportFrame.src = finalurl; 
     
         VSS.notifyLoadSucceeded(); 
     
        }); 
     
    </script> 
     
    <div id="tfsreport"> 
     
        <iframe id="reportFrame" style="width:100%" frameborder="0"></iframe> 
     
    </div> 
     
    </body> 
     
    </html>

    +0

    感谢您的回复,它现在正在工作。但如何添加Hub集团?我把这个链接称为https://www.visualstudio.com/en-us/docs/integrate/extensions/develop/add-hub-group。但它不起作用。 –

    +0

    @shishirsasal遵循你提供的链接应该工作。添加集线器组时的详细问题是什么? –

    +0

    它的工作感谢你。我在清单文件中给出了另一个目标 –