带功能的自动绑定模板(Polymer 1.x)

时间:2015-11-03 02:58:26

标签: templates data-binding polymer polymer-1.0

您好我有这个简单的索引文件:

<?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事件。有了这个。没有任何东西。什么都行不通!

1 个答案:

答案 0 :(得分:1)

删除大括号。

<h1 on-click="stateChange">Holaaa</h1>
  

兼容性说明:语法与0.5不同,后者需要在事件处理程序名称周围使用大括号({{}})。

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