2

我有嵌套模式。以非常合乎逻辑的方式使用{{> afQuickField name='work_item' template="myTemplate"}}输出输入,但对于我的一些更复杂的对象,这并不是非常实用。我想设置一个模板,我可以在其中精确地将每个输入与其他一些 html 一起放置。

这些也是(通常)对象数组,所以.autoform-add-item.autoform-remove-item按钮功能非常好,我想保留它。

我将如何为特定的嵌套模式定义自定义模板并在我的主窗体中调用它们?

试过

创建一个<template name="afWorkItem_myTemplate">从 bootstrap3 表单模板推断出的命名的自定义表单模板。然后我试着这样称呼它,{{> afWorkItem name='work_item' template="myTemplate"}}但这根本不起作用。

更新

我试图修改我的自定义afArrayField模板以输出基于arrayFieldName. 这似乎更近了一点,但仍然没有雪茄。

Template.afArrayField_autoupdate.helpers({
  whichTemplate: function(templateName){
    return this.arrayFieldName === templateName;
  }
});

然后在afArrayField_autoupdate模板中:

{{#if whichTemplate 'address'}}
  {{> afQuickField name=this.current.street options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
  <br />
  {{> afQuickField name=this.current.city options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
  {{> afQuickField name=this.current.state_id options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
  {{> afQuickField name=this.current.zip options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
  <br />
  {{> afQuickField name=this.current.address_type_id options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
  {{> afQuickField name=this.current.active_address options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
{{else}}
  {{> afQuickField name=this.name label=false options=afOptionsFromSchema template="autoupdate" placeholder="schemaLabel"}}
{{/if}}

这非常接近,但我的所有字段(包括如果我只是在 else 块中使用 afQuickField 方法则选择的字段)作为文本输入出现。

4

1 回答 1

0

如果您尝试添加自定义afWorkItem输入类型,则必须调用AutoForm.addInputType让 AutoForm 知道它。不确定模板根本不起作用的确切含义,但这可能是一个原因。内置输入类型的形式有很多例子。

于 2015-03-16T18:45:31.617 回答