# 渲染元数据

在某些组件中,你的选项可能来自于实时请求的后台接口,因此无法直接配置在 JSON Schema 中。此时可以通过 FormBuildermetadata 属性传递这些远程的数据。

# 远程数据

在外层组件中请求渲染元数据并将其传递给 FormBuilder 组件:

<form-builder @metadata="renderMetadata"></form-builder>
{
  data() {
    return {
      renderMetadata: null
    }
  },

  created() {
    this.fetchMetadata().then(data => {
      this.renderMetadata = data;
    });
  },

  methods: {
    // remote api
    fetchMetadata() {}
  }
};

在自定义表单元素中使用:

// component `foo`
{
  computed: {
    list() {
      return this.metadata.fooList || [];
    }
  }
}
<select name="foo">
  <option v-for="item in list" :key="item.id" :value="item.id">
    <span>{{ ch.name }} - {{ ch.id }}</span>
  </option>
</select>