在 VJSF 中找不到执行 ajax 请求的 http 库

No http lib found to perform ajax request in VJSF

我使用 VJSF 使用来自 HTTP 请求的结果来填充选择。 然后我遇到了一个压力很大的错误。 以下是我的代码。

<template>
  <v-app id="app">
    <v-container>
      <p>valid={{valid}}</p>
      <v-form ref="form" v-model="valid">
        <v-jsf v-model="model" :schema="schema" :options="options" @input="logEvent('input', $event)" @change="logEvent('change', $event)" />
      </v-form>
      <v-layout row class="mt-2">
        <v-spacer></v-spacer>
        <v-btn color="primary" @click="$refs.form.validate()">Validate</v-btn>
      </v-layout>
    </v-container>
  </v-app>
</template>

<script>

import VJsf from '@koumoul/vjsf/lib/VJsf.js'
import '@koumoul/vjsf/lib/VJsf.css'
import '@koumoul/vjsf/lib/deps/third-party.js'

const model = {
    selectAjaxString: 'https://koumoul.com/s/data-fair/api/v1/datasets/gendarmeries-france-metropolitaine'
}

const options =  {
    context: {
        owner: {
            type: 'organization',
            id: '5a5dc47163ebd4a6f438589b'
        }
    },
    idPrefix: 'example-select-http-'
}

const schema = {
    type: 'object',
    properties: {
        selectAjaxString: {
            type: 'string',
            title: 'I\'m a string selected from results of an HTTP request',
            'x-fromUrl': 'https://koumoul.com/s/data-fair/api/v1/datasets?status=finalized&select=title&owner={context.owner.type}:{context.owner.id}',
            'x-itemsProp': 'results',
            'x-itemTitle': 'title',
            'x-itemKey': 'href'
        }
    }
}

export default {
  name: 'App',
  components: { VJsf },
  data: () => ({
    model,
    options,
    schema,
    valid: false
  }),
  methods: {
    logEvent(key, $event) {
      console.log("vjsf event", key, $event);
    }
  }
};
</script>

这是什么原因? 为什么我无法执行 ajax 请求? 我关注 https://koumoul-dev.github.io/vuetify-jsonschema-form/latest/examples#select-http

中的示例

看来 VSJF 要求用户通过 httpLib configuration option:

指定 HTTP 请求库
  1. 安装axios:

    npm i -S axios
    
  2. 更新您的 VSJF 配置选项以将 axios 设置为 httpLib:

    import axios from 'axios'
    
    const options = {
        //...
        httpLib: axios
    }