在Inner-H-T-M-L上的聚合物结合在TAP事件中



我如何触发HTML字符串中存在的'tap'事件,该事件插入到类似的聚合物组件中。

<dom-module id="test-comp">
    <template>
        Please <span inner-h-t-m-l="[[htmlString]]"></span> here for an alert!
    </template>
    <script>
        Polymer({
          is: 'test-comp',
          properties: {
              htmlString: {
                  type: String,
                  value: '<a on-tap="doSomething">click</a>'
              }
          },
          doSomething: function () {
              console.log('tap event has happened!');
          }
        });
    </script>
</dom-module>

实际结果:无法看到发生任何点击/点击事件发生,我想插入HTMLSTRING中的TAP事件不会被插入聚合物事件。

预期输出:当单击HTML渲染句子

中,我应该能够看到输出'tap event has happened!'

对我来说并不清楚您想在这里实现什么。
但是,我不认为您所显示的方法在干净或推荐的方式上都是。

如果要根据某些状态添加和删除功能,则可以毫不含糊地添加和删除侦听器

this.listen(this.$.myButton, 'tap', 'onTap');
this.unlisten(this.$.myButton, 'tap', 'onTap');

如果您希望根据状态切换功能,我将在决策功能中执行此操作:

<dom-module id="test-comp">
  <template>
    <span on-tap="alertSwitch"></span>
  </template>
  <script>
    Polymer({
      is: 'test-comp',
      alertSwitch: function() {
         if(a){
           this.alertOne();
         } else {
           this.alertTwo();
         }
      },
      alertOne: function () {
          console.log('first tap event has happened!');
      },
      alertTwo: function () {
          console.log('second tap event has happened!');
      }
    });
  </script>
</dom-module>

尚不清楚您的目标是什么。

相关内容

  • 没有找到相关文章

最新更新