我使用swagger UI显示方法,出于某种原因,在转向swagger UI 2.0后,我的jquery点击事件不再有效。
是否有一种以编程方式扩展JS的所有操作?我不希望它们在页面打开时展开,我只需要在运行某个脚本时展开它们。
这曾经有效,但不再适用:
$('div.heading span.path a.toggleOperation').each(function (e) {
$(this).click();
});
这也不起作用:
$('div.heading span.path a.toggleOperation').click();
没有错误,它似乎忽略了我的点击事件
答案 0 :(得分:3)
找到答案,这很简单。
当你大摇大摆时,你会做这样的事情:
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文件中找到。
答案 1 :(得分: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);