Нечетное поведение в компоненте Vue с использованием Swagger-UI - PullRequest
0 голосов
/ 16 января 2020

Я получил странное поведение, когда я анализирую JSON и помещаю его в переменную, он не работает при создании Swagger-UI, но если я выполняю JSON .parse () непосредственно внутри Swagger- Создание пользовательского интерфейса работает нормально, как показано во втором примере.

Не работает:

Vue.component('my-swagger', {
    name: 'myswagger',
    mounted() {
        var swag = JSON.parse("{\"swagger\":\"2.0\",\"info\":{\"title\":\"SampleAPI\",\"description\":\"APIdescriptioninMarkdown.\",\"version\":\"1.0.0\"},\"host\":\"api.example.com\",\"basePath\":\"\/v1\",\"schemes\":[\"https\"],\"paths\":{\"\/users\":{\"get\":{\"summary\":\"Returnsalistofusers.\",\"description\":\"OptionalextendeddescriptioninMarkdown.\",\"produces\":[\"application\/json\"],\"responses\":{\"200\":{\"description\":\"OK\"}}}}}}")
        window.onload = function() {
        const ui = this.SwaggerUIBundle({
            dom_id: '#swagger-ui',
            spec: this.swag,
            deepLinking: false,
            presets: [
              SwaggerUIBundle.presets.apis,
              SwaggerUIStandalonePreset
            ],
            plugins: [
            ],
            layout: "StandaloneLayout"
          });
          window.ui = ui
        }
    },
    template: `
    <div id="swagger-ui"></div>
    `
})

Работает:


Vue.component('my-swagger', {
    name: 'myswagger',
    mounted() {
        window.onload = function() {
        const ui = this.SwaggerUIBundle({
            dom_id: '#swagger-ui',
            spec: JSON.parse("{\"swagger\":\"2.0\",\"info\":{\"title\":\"SampleAPI\",\"description\":\"APIdescriptioninMarkdown.\",\"version\":\"1.0.0\"},\"host\":\"api.example.com\",\"basePath\":\"\/v1\",\"schemes\":[\"https\"],\"paths\":{\"\/users\":{\"get\":{\"summary\":\"Returnsalistofusers.\",\"description\":\"OptionalextendeddescriptioninMarkdown.\",\"produces\":[\"application\/json\"],\"responses\":{\"200\":{\"description\":\"OK\"}}}}}}"),
            deepLinking: false,
            presets: [
              SwaggerUIBundle.presets.apis,
              SwaggerUIStandalonePreset
            ],
            plugins: [
            ],
            layout: "StandaloneLayout"
          });
          window.ui = ui
        }
    },
    template: `
    <div id="swagger-ui"></div>
    `
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...