2015-06-05 21 views
1

我使用Swagger UI來顯示方法,並且出於某種原因,在移動到Swagger UI 2.0後,我的jquery點擊事件不再有效。Swagger UI - 用JS展開操作

是否有一種編程方式來擴展與JS的所有操作?我不希望它們在打開的頁面上展開,只需要它們在某個腳本運行時展開。

這用來工作,但沒有了:

 $('div.heading span.path a.toggleOperation').each(function (e) { 
      $(this).click();   
     }); 

這也不起作用:

 $('div.heading span.path a.toggleOperation').click(); 

沒有錯誤,它只是似乎忽略我的點擊事件

回答

2

找到了答案,這非常簡單。

當你初始化招搖,你會做這樣的事情:

 window.swaggerUi = new SwaggerUi({ 
      url: swaggerUrl, 
      dom_id: "swaggerInjectionPoint", 
      supportHeaderParams: true, 
      docExpansion: 'list', 
      validatorUrl: null, 
      supportedSubmitMethods: ['get', 'post', 'put', 'delete'] 
     }); 

在這一點上,你有機會獲得swaggers方法和有一個叫expandAll();

所以只需創建一個事件,並有該事件執行:

window.swaggerUi.expandAll(); 

您還可以使用一些更有益的方法:

collapseAll() 
    listAll(); 

,並且都可以在發現其他幾個人swagger-ui.js文件。

0

隨着招搖,ui.js版本2.0.17這個JavaScript可以從瀏覽器書籤中運行,因此它適用於網頁你沒有控制權:

javascript:for (var i = 0, len = window.swaggerUi.api.apisArray.length; i < len; i++) { Docs.expandOperationsForResource(window.swaggerUi.api.apisArray[i].name) };void(0);