我正在尝试让自定义组件在 Formio.js 中工作。我想要一个完整的、重要的工作示例。
我没有使用 Angular、ng、React 或 form.io 服务。
文档很糟糕。我可以复制 Checkmatrix 示例代码并运行它(经过多次摆弄),但即使它也无法正常工作:在表单构建器中,编辑和删除控件不显示。(这方面存在一个错误问题,但没有解决方案,这显然令人担忧。)
SDK 参考文档中到处都是死链接……例如“组件”,这似乎特别重要。
没有该示例使用的任何代码的文档。例如,它使用“renderTemplate”调用,但参数没有在任何地方描述。
看来,理解这个系统任何部分的唯一方法就是尝试弄清楚所有的源代码。没有添加代码的说明。
甚至不清楚最好的继续方式是什么:我是否应该分叉 formio.js 存储库、学习 TypeScript 并直接添加组件(如果我想保持 formio.js 最新,则会产生麻烦)或继续尝试通过在浏览器中的附加脚本注册组件来工作。
** 任何人都可以就最佳方式提供具体建议吗?**
通过构建器编辑 formio 表单中的属性会导致许多更改——字段显然是随机重新排序的,并且“id”字段获得了新值。
这使得跟踪实际的表单更改变得困难,因为小的更改会导致非常大的差异。重新排序有理由吗?“id”字段有什么用?它是否依赖于(某种哈希值)表单组件中的其他值,或者随机生成
修改了组件中的“key”。我预计只会更新“key”,但组件中属性的顺序发生变化,并且当我保存文件时“id”有一个新值。
我必须用 a 引用 an htmlElement,@ViewChild()有什么办法吗?我必须创建一个 HTMLElement,然后尝试分配对 aviewChild或类似内容的引用。感谢您的关注。
我在 Angular 7 中使用 FormIO,如果表单无效,我不想显示包含“Societe est obligatoire”的警报危险(第一个)。
这是我在 form-io.component.ts 中声明的表单
form= {
components: [
{
type: "textfield",
input: true,
tableView: true,
inputType: "text",
inputMask: "",
label: "Societe",
key: "societe",
placeholder: "societe",
multiple: false,
defaultValue: "",
protected: false,
unique: false,
persistent: true,
validate: {
required: true,
minLength: 1,
pattern: "",
custom: "",
customPrivate: false
},
conditional: {
show: "",
when: null,
eq: ""
}
},
{
input:true,
label:"Validate",
tableView:false,
key:"ValidateFournisseur",
size:"md",
block:false,
action:"submit",
disableOnInvalid:true,
theme:"primary",
type:"button",
hidden:false
}
Run Code Online (Sandbox Code Playgroud)
这是我的 form-io.component.html
<formio …Run Code Online (Sandbox Code Playgroud)