polymer - 聚合物纸标签输入未添加到表单
问题描述
尝试使用paper-tags-input在 POST 请求中包含一个数组字段。
表格设置如下:
<paper-dialog id="dialog" modal class="size-position">
<iron-form id="myForm" on-iron-form-response="_formResponse">
<form method="post" enctype="application/json" action="http://127.0.0.1:8080/items">
<paper-input name="owner" label="Owner"></paper-input>
<paper-tags-input name="tags" label="Tag(s)" duplicate-error-message="Duplicate">
</paper-tags-input>
<div class="buttons">
<paper-button raised dialog-dismiss class="cancel">
Cancel
</paper-button>
<paper-button raised dialog-confirm autofocus on-tap="_submit" class="submit">
Submit
</paper-button>
</div>
</form>
</iron-form>
</paper-dialog>
...
<script>
...
_submit() {
this.$.myForm.submit();
}
</script>
虽然paper-input
命名字段owner
包含在请求有效负载中,但请求有效负载中没有添加任何内容tags
。
如何获取tags
POST 请求有效负载中包含的数组字段中的值?
如果上述方法不可行,那么我认为另一种解决方案是声明一个名为的新属性tags_list
并将其设置为 的tags
属性paper-tags-input
,例如:
<paper-tags-input name="tags"
label="Tag(s)"
duplicate-error-message="Duplicate"
tags="{{tags_list}}">
</paper-tags-input>
然后我看到这些值在 中可用this.tags_list
,我可以在submit()
函数中访问这些值。在提交之前如何添加它myForm
?
解决方案
想出了如何用第二种方法做到这一点。
像这样向铁形式添加了预提交:
<iron-form id="myForm"
on-iron-form-presubmit="_preSubmit"
on-iron-form-response="_formResponse">
...
<script>
_preSubmit() {
var body = this.$.myForm.request.body;
body['tags'] = [];
this.tags_list.forEach(function(tag) {
body['tags'].push({"name": tag});
});
}
</script>
实际上这种方法是我可能需要的,因为我需要修改数组值并将每个值保留为一个对象。
推荐阅读
- linux - 为什么在嵌入式 linux 上运行的 Qt 应用程序的“ascender”行上方的字体会被削减?
- c# - 有没有一种方法可以序列化包含一个包含更多 json 作为 XML 字符串的字段的 Json
- python - 使用 Python Pandas 的 Excel 'COUNTIF()' 功能
- rdf - 为类的每个成员创建新的实例值
- eclipse - Selenium:我如何上传照片并将其插入电子邮件中?
- ajax - 如何使用从 AJAX 获取 API 调用的 JSON 结果的参数调用另一个函数
- php - 如何在基于 cpanel 的共享主机平台上设置和运行 PHP WebSocket 服务?
- swift - 为什么字典中的这个常量没有展开?
- date - 从 NSIS 中的时间戳获取日期
- angular - MatDialog Angular开放组件?