我想声明一些布局用作所有表单字段的模板。
因此大致给出了这个片段
<div th:fragment="control(input)" class="form-group">
<label class="col-sm-3 control-label">Edition description</label>
<div class="col-sm-9">
<input th:replace="${input}">
</div>
</div>
这个片段&#34;调用&#34;
<div th:replace=":: control(~{:: input})">
<!--Want to reference this one, not all inputs-->
<input th:field="*{editionDescription}" type="text" class="form-control" placeholder="перераб., дополн.">
</div>
它会产生以下结果:
<div class="form-group">
<label class="col-sm-3 control-label">Edition description</label>
<div class="col-sm-9">
<input th:field="*{editionDescription}" type="text" class="form-control" placeholder="перераб., дополн.">
</div>
</div>
问题是:: input
输入选择器应用于当前处理的模板中的所有<input>
标记。我如何仅参考随附的?
此外,您是否可以就如何处理此问题提出建议。我想尽可能地模仿Grails Fields插件。你认为我最好宣布自己的方言吗?
答案 0 :(得分:0)
您应该为输入元素 (要替换的元素)定义类(或标识符),然后可以使用适当的选择器语法只是为了选择所需的输入。您可以在here
中找到选择器语法的详细信息示例代码如下:
<div th:fragment="control(input)" class="form-group">
<label class="col-sm-3 control-label">Edition description</label>
<div class="col-sm-9">
<input th:replace="${input}">
</div>
</div>
然后您的选择器应类似于:
<div th:replace=":: control(~{:: input.description})">
<!--Want to reference this one, not all inputs-->
<input th:field="*{editionDescription}" type="text" class="form-control description" placeholder="перераб., дополн.">
</div>
请注意使用 :: input.description 作为具有类标识符的选择器