Symfony javascript的作用域为可重用的细枝片段,以添加多个列表项
我正在使用Symfony 5.1和网页包encore 我想创建一个可重用的细枝片段,用于表单中,使用户可以执行以下工作流:Symfony javascript的作用域为可重用的细枝片段,以添加多个列表项,javascript,symfony,symfony-forms,Javascript,Symfony,Symfony Forms,我正在使用Symfony 5.1和网页包encore 我想创建一个可重用的细枝片段,用于表单中,使用户可以执行以下工作流: 在文本字段中输入字符串 单击“添加”-按钮/按enter键 文本字段的内容添加到 焦点返回到文本字段 等等 所以我从这样的表单类型开始 [...] public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('comp
[...]
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('compoundStrings', HiddenType::class)
->add('stringInput', TextType::class)
->add('addString', ButtonType::class, [
'label' => 'Add'
])
;
$builder->get('compoundStrings')
->addModelTransformer(new CompoundStringsToStringArrayTransformer());
}
其中compoundStrings应该随着每次单击“Add”而更新,这样它最终将在其value属性中保存所有输入的值,并且可以在我处理表单时进行后续处理
我的片段现在看起来仍然非常基本,因为我有点被困在这一点上:
<fieldset class="form-group">
{{ form_row(field.compoundStrings) }}
{{ form_row(field.stringInput) }}
{{ form_row(field.addString) }}
<ul class="{{ field.vars.full_name }}-list"></ul>
</fieldset>
{{form_row(field.compoundStrings)}
{{form_row(field.stringInput)}
{{form_row(field.addString)}
对于我的工作方法,我需要一些javascript来添加/删除
和更新compoundStrings字段的值
有没有可能将必要的JS范围限定到相关片段,这样我就可以在一个表单中包含它k次?您可以这样做,但是您有没有研究过?它可能适合您的需要(不过您仍然需要一些定制的js)。从示例来看,它似乎并不适合我的情况。可能是因为我对symfony缺乏经验。它看起来似乎对与其他实体的关系特别有用。我基本上是在尝试为表单元素找到一个好的填充数组类型属性的模式。