您好我有这个简单的索引文件:
<?php use Cake\Routing\Router; ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="import" href="<?= Router::url('/'); ?>bower_components/polymer/polymer.html">
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents-lite.min.js'); ?>
</head>
<body unresolved>
<template id="app" is="dom-bind" >
<h1 on-click="{{stateChange}}">Holaaa</h1>
</template>
<script>
var app = document.querySelector('#app');
app.stateChange= function(){
console.log("stateChange");
};
</script>
</body>
</html>
我收到了这个错误:
[dom-bind::_createEventHandler]: listener method `{{stateChange}}` not defined
我有一个使用Polymer的应用程序,其中一切都运行良好。但是这个简单的例子不起作用!为什么!?
为什么呢?我错过了什么?
我尝试用app定义stateChange函数。没有应用程序。也没有成功。
我也尝试将它包装在dom change事件中,就像文档指出但不能正常工作
app.addEventListener('dom-change', function() {
stateChange= function(){
console.log("stateChange");
};
});
我尝试使用app定义stateChange函数以及dom-change事件。有了这个。没有任何东西。什么都行不通!
答案 0 :(得分:1)
删除大括号。
<h1 on-click="stateChange">Holaaa</h1>
兼容性说明:语法与0.5不同,后者需要在事件处理程序名称周围使用大括号({{}})。
来源:https://www.polymer-project.org/1.0/docs/devguide/events.html#annotated-listeners