# @advanced-rest-client/form-data-editor 中文文档

规范地址：https://npmcn.com/package/%40advanced-rest-client/form-data-editor/

版本：3\.0\.10
npm 元数据更新时间：2026-04-07T19:24:37.715Z
中文译文更新时间：2026-11-06T12:15:50.696Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40advanced-rest-client/form-data-editor
原文对照：https://npmcn.com/package/%40advanced-rest-client/form-data-editor/?lang=original
项目主页：https://github.com/advanced-rest-client/form-data-editor#readme
源码仓库：https://github.com/advanced-rest-client/form-data-editor

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：74.3 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：13 个
- 首次发布：2019-02-22T17:06:37.673Z
- 最新版本发布：2021-07-12T17:23:50.199Z
- 近 30 天下载量：3233（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 0 个）

## 中文简介

用于编辑窗体数据的元素(x-www-form-urlencoded)

## 安装

```sh
npm install @advanced-rest-client/form-data-editor
```

也可以使用：`pnpm add @advanced-rest-client/form-data-editor`、`yarn add @advanced-rest-client/form-data-editor`、`bun add @advanced-rest-client/form-data-editor`

## README

[![Published on NPM](https://img.shields.io/npm/v/@advanced-rest-client/form-data-editor.svg)](https://www.npmjs.com/package/@advanced-rest-client/form-data-editor)

[![Tests and publishing](https://github.com/advanced-rest-client/form-data-editor/actions/workflows/deployment.yml/badge.svg)](https://github.com/advanced-rest-client/form-data-editor/actions/workflows/deployment.yml)

## <窗体-数据编辑器>

用于编辑数据(x-www-form-urlencoded)的元素.

该元素会生成允许输入形式数据值的窗体.

它可能用于 [AMF 移动](https://github.com/mulesoft/amf) json/ld 模型通过 [api-view-model- transfer 变相器](https://github.com/advanced-rest-client/api-view-model-transformer) 将AMF模型转换为数据视图模型.

```html
<form-data-editor value="grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb" allowcustom allowdisableparams allowhideoptional></form-data-editor>
```

## 使用量

### 安装

```
npm install --save @advanced-rest-client/form-data-editor
```

### 在 html 文件内

```html
<html>
  <head>
    <script type="module">
      import '@advanced-rest-client/form-data-editor/form-data-editor.js';
    </script>
  </head>
  <body>
    <form-data-editor allowcustom allowdisableparams></form-data-editor>
    <script>
    {
      const editor = document.querySelector('api-url-params-editor');
      editor.onchange = (e) {
        console.log('Payload value', e.target.value); // or e.detail.value
      };
      editor.onmodel = (e) {
        console.log('View model', e.target.model); // or e.detail.value
      };
    }
    </script>
  </body>
</html>
```

### 在一个LitElement中

```js
import { LitElement, html } from 'lit-element';
import '@advanced-rest-client/form-data-editor/form-data-editor.js';

class SampleElement extends PolymerElement {
  render() {
    return html`
    <form-data-editor
      .value="${this.payloadValues}"
      .model="${this.viewModel}"
      @value-changed="${this._valueHandler}"
      @model-changed="${this._modelHandler}"></form-data-editor>
    `;
  }

  _valueHandler(e) {
    this.payloadValues = e.detail.value;
  }

  _modelHandler(e) {
    this.viewModel = e.detail.value;
  }
}
customElements.define('sample-element', SampleElement);
```

### 行为控制

#### 允许可拆页

当设定时, 它会为每个项目设置一个复选框, 允许禁用此项目 . 本项目在视图和生成的数据模式中,但在生成值时被忽略.

#### 允许海关

当设定时会使"添加参数"按钮并允许创建新的形式值. 强制单独使用.

#### 允许隐藏可选

何时 `item.required` 模型属性没有设定, 此值被设定, 然后隐藏所有可选项目( 未按要求标记) 并制作一个复选框来渲染视图中的隐藏项目.

```html
<form-data-editor allowhideoptional></form-data-editor>
<script>
{
  document.querySelector('form-data-editor').model = [
    {
      name: 'param1',
      value: 'value1',
      required: true
    },
    {
      name: 'param2',
      value: 'value2',
      required: false
    }
  ];
}
</script>
```

此编辑器只制作 `param1` 参数和隐藏 `param2` 窗体项目. 用户可以随时渲染隐藏的项目.

### 从AMF 模型生成视图模型

您可以通过 AMF parser 生成的模型生成视图模型 `api-view-model-transformer` 键. 此元素生成查询参数,URI参数,正体,和头等的通用模型.

```html
<api-view-model-transformer></api-view-model-transformer>
<form-data-editor></form-data-editor>

<script>
{
  const api = await generateApiModel();
  const endpoint = '/api-endpoint';
  const operation = 'GET';
  const bodyParametersModelArray = getOperationRequestBodyFromModel(api, endpoint, operation); // some abstract method
  const transformer = document.querySelector('api-view-model-transformer');
  transformer.api = api; // This is required to compute ld+json keys!
  const viewModel = transformer.computeViewModel(bodyParametersModelArray);
  document.querySelector('form-data-editor').model = viewModel;
}
</script>
```

### 发展

```sh
git clone https://github.com/advanced-rest-client/form-data-editor
cd form-data-editor
npm install
```

### 本地运行演示

```sh
npm start
```

### 运行测试

```sh
npm test
```

### API 组件

此组件是 [API 生态系统组成部分](https://elements.advancedrestclient.com/)

## 常见问题

### @advanced-rest-client/form-data-editor 是什么？

用于编辑窗体数据的元素\(x-www-form-urlencoded\)

### 如何安装 @advanced-rest-client/form-data-editor？

在项目目录运行 npm install @advanced-rest-client/form-data-editor，或使用 pnpm add / yarn add / bun add。

### @advanced-rest-client/form-data-editor 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/advanced-rest-client\_\_form-data-editor 是否存在。

### @advanced-rest-client/form-data-editor 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @advanced-rest-client/form-data-editor 可以商用吗？

@advanced-rest-client/form-data-editor 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @advanced-rest-client/form-data-editor 的下载量有多少？

根据 npm 官方下载统计，@advanced-rest-client/form-data-editor 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,233 次，日均约 108 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @advanced-rest-client/form-data-editor 还在维护吗？

最新版本 3\.0\.10 发布于 2021/07/13（5 年前）；至今共发布 14 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/02/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

