聚合物纸标签输入未添加到表单中

Polymer paper-tags-input not added to form

尝试在 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>

虽然名为 ownerpaper-input 字段包含在请求负载中,但请求负载中没有为 tags 添加任何内容。

如何获取 POST 请求负载中包含的 tags 数组字段中的值?

如果以上不可能,那么我认为另一种解决方案是声明一个名为 tags_list 的新 属性 并将其设置为 paper-tags-inputtags 属性=],例如:

<paper-tags-input name="tags" 
        label="Tag(s)" 
        duplicate-error-message="Duplicate"
        tags="{{tags_list}}">
</paper-tags-input>

然后我看到值在 this.tags_list 中可用,我可以在 submit() 函数中访问它。我如何在提交之前将其添加到 myForm

想出了如何用第二种方法做到这一点。

提示来自:

向 iron 表单添加了预提交,如下所示:

<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>

实际上我可能需要这种方法,因为我需要修改数组值并将每个值都保留为一个对象。