聚合物数据绑定更改侦听器?

时间:2015-08-11 17:37:40

标签: javascript polymer

我有这个自动绑定模板:

<template class="event-listener" is="dom-bind">
      <iron-pages attr-for-selected="data-route" selected="{{route}}">
        <section data-route="one">
        </section>
        <section data-route="two"></section>
      </iron-pages>
</template>

我可以在javascript中设置route的值,例如:

var app = document.querySelector(".event-listener");
app.route = "one";

如果route的值发生变化,如何添加侦听器?

1 个答案:

答案 0 :(得分:0)

添加侦听器以检测对route的更改几乎肯定意味着您应该创建一个常规的Polymer元素,而不是使用dom-bind样式元素。

举例来说,您可以将以下内容添加到head

<dom-module is='my-el'>
<script>
Polymer({
    is: 'my-el',
    properties: {
        route: {
            type: String,
            observer: 'routeChanged'
        }
    },
    routeChanged: function() {
        // change fires here
    }
});
</script>
<template>
      <iron-pages attr-for-selected="data-route" selected="{{route}}">
        <section data-route="one">
        </section>
        <section data-route="two"></section>
      </iron-pages>
</template>
</dom-module>

body中的某个地方:

<my-el></my-el>
<script>
document.querySelector('my-el').route = "one";
</script>