【问题标题】:I can't access iron-form inside dom-repeat by using index我无法使用索引访问 dom-repeat 中的铁形式
【发布时间】:2017-11-18 19:52:00
【问题描述】:

我正在从 cassandra 数据库(使用 iron-ajax 和 dom-repeat)加载一些记录,并通过单击一行打开一个纸质对话框,其中值被加载到包含纸质输入的铁形表格中可编辑字段。编辑后,我应该能够提交以更新数据库中的记录,但是使用纸质按钮它不起作用(至少使用一个简单的按钮试图将内容发送到 REST 很难以 415 结尾错误)。 我尝试的是这样的:

  <iron-ajax id="get_drafts" auto handle-as="json" last-response="{{drafts}}"></iron-ajax>
  <template is="dom-repeat" items="{{drafts}}" as="item">
  <div>{{item.field1}}</div>
  <span><paper-button title="edit" on-click="openEditDialog"></paper-button></span>
    <paper-dialog id="incidentEditDialog{{index}}" with-backdrop>
       <form is="iron-form" action="/" id="myForm{{index}}" method="post">
         <paper-input value="{{item.field1}}"><paper-input>
         <paper-button raised on-click="submit">Submit</paper-button>
       </form>
    </paper-dialog>  
  </template>

然后尝试了各种不起作用的脚本选项,我认为主要是因为我没有成功使用 id - myForm{{index}} 识别表单。我找到了各种各样的例子,但没有任何这种扭曲(dom-repeat 中的形式)。 这至少可行吗?我应该怎么做? 谢谢! 如果我使用:

 <paper-button raised onclick="clickHandler(event)">Submit</paper-button>

然后是方法

 function clickHandler(event) {
       Polymer.dom(event).localTarget.parentElement.submit();
    }

我收到 415 错误:出现意外错误(类型=不支持的媒体类型,状态=415)。 不支持内容类型“application/x-www-form-urlencoded”

【问题讨论】:

  • 请注意,paper-input 标记上缺少结束 &gt;,因为语法突出显示应该告诉您...
  • 谢谢,但这更像是一个伪代码,因为整个核心有点大 - 所以我在这里写的时候可能错过了一些东西。更重要的是这个想法……有可能吗,是否“可取”?
  • 我现在在一个简单的聚合物页面中尝试了一个更简单的表单(只有 2 个输入字段)......它只是不起作用!我有各种各样的错误:方法 _submit 未定义,空字段发送到 REST 等等等等.. 真是令人沮丧!

标签: javascript polymer dom-repeat iron-form


【解决方案1】:

问题是&lt;form&gt;(甚至使用铁型扩展)无法像与原生&lt;button&gt;&lt;input&gt; 一样无缝地与纸质按钮一起使用。

当您在纸质按钮上执行on-click="submit" 时,您需要定义一个submit 方法(与您在示例中使用 clickHandler 的方法相同)。

如果您不想这样做,一个好的解决方法是将纸张按钮包装在本机按钮中:

<button tabindex="-1"> <paper-button>Submit</paper-button> </button>

负的 tabindex 在那里,所以包装器无法获得焦点。

不支持的媒体类型错误是一个单独的问题,但将 content-type="application/json" 添加到您的 &lt;form&gt; 可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多