javascript - 如何将参数传递给 Polymer 中的函数

标签 javascript polymer

我试图调用一个函数并传递一个参数,但它给出了函数未定义的错误。我想这不是传递参数的正确方法。

//it's a big component with many methods

updateData: function(id) {
  console.log(id);
  }
<div class="basic">
  <preview-list class="profileList">
    <template is="dom-repeat" items="{{ followers }}">
      <preview-profile profile$="{{ item }}">
        <div class="connectWrapper">
          <template is="dom-if" if="{_computeIsNotConnected(item.isConnection, item.isConnection2)}}">
            <custom-button on-tap="[[updateData(item.id)]]"></custom-button>
          </template>
        </div>
      </preview-profile>
    </template>
  </preview-list>
</div>

它显示以下错误: 监听器方法 `[[updateData(item.id)]]` 未定义 我也试过用花括号。 如何将参数传递给函数?

最佳答案

您必须使用您的函数名称并从事件参数中获取您的对象:

<template is="dom-repeat" items="{{ data }}">
  <custom-button on-tap="updateData"></custom-button>
</template>

然后像这样定义你的事件处理程序:

updateData: function(event) {
  console.log(event.model.item.id);
}

更新

因为您在 dom-repeat 中使用 dom-if,这是一个错误 (https://github.com/Polymer/polymer/issues/2574)

您可以使用 hidden$="{{_computeIsNotConnected(item.isConnection, item.isConnection2)}}" 而不是 dom-if 模板,

或者改用这段代码:

<template id="repeater" is="dom-repeat" items="{{ data }}">
  <custom-button on-tap="updateData"></custom-button>
</template>

updateData: function(event) {
  console.log(this.$.repeater.modelForElement(event.target));
}

关于javascript - 如何将参数传递给 Polymer 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41577521/

相关文章:

javascript - polymer 属性指令

javascript - 如何通过on-tap函数从html到javascript获取 "index-as"值?

javascript - 浏览器之间的按钮 css 不一致

javascript - getParent函数在ie中不起作用

javascript - 编写 jQuery 函数的更有效方式

javascript - 我需要调用 onKeyDown 函数的输入文本框的 id

javascript - 如何在不重新加载页面的情况下上传图片

javascript - 任何用于实现像 Google Stories 这样的可滚动照片墙的库?

javascript - polymer 组件间数据绑定(bind)?

javascript - 在 Polymer 元素中调用函数