如何在模板聚合物中使用元素功能?

时间:2016-05-17 02:11:48

标签: javascript polymer polymer-1.0 web-component

我想使用元素中定义的函数。像这样:

<template>
<span onclick="this.parentElement.test();"></span>
</template>

<script>
Polymer({
  is: 'test-ele',
  test: function() {
    console.log('This is a test message.')
  }
})
</script>

是否有类似的方法?

<template>
<span onclick="{{{test}}}"></span>
</template>

2 个答案:

答案 0 :(得分:0)

  

要向本地DOM子级添加事件侦听器,请在模板中使用 on- 事件 注释。这通常消除了仅为了绑定事件监听器而赋予元素id的需要。

来源:https://www.polymer-project.org/1.0/docs/devguide/events.html#annotated-listeners

<dom-module id="test-ele">
  <template>
    <span on-click="test">Click Here</span>
  </template>

  <script>
    Polymer({
      is: 'test-ele',
      test: function() {
        console.log('This is a test message.');
      }
    });
  </script>
</dom-module>

答案 1 :(得分:0)

简单的答案是no, you can't<span onclick="{{{test}}}"></span>会尝试启动函数{{{test}}},而不是将其作为模板变量读取。

此外,你的第一个例子是错误的。

<template>
<span onclick="this.parentElement.test();"></span>
</template>

将尝试加载this.parentElement.test();作为函数。只需使用

<template>
<span onclick="test"></span>
</template>

Polymer知道它应该调用父元素中的函数。