如何触发属性聚合物中的更改功能
How to fire the attributeChanged-Function in Polymer
我有一个简单的聚合物画布对象,如下所示:
<polymer-element name="canvas-diagram" attributes="type width height json">
<template>
<div id="canvasField">
Typ: {{type}}, Width:<input value="{{width}}">, Height:{{height}}, json:{{json}}
<div id="canvasContainer">
<canvas id="canvasObj" width="{{width}}" height="{{height}}"></canvas>
</div>
</div>
</template>
<script>
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
Polymer("canvas-diagram",{
type: "bar",
width: "300",
height: "200",
ready: function() {
console.log("this.ready()");
this.writeDiagram();
},
attributeChanged: function(attrName, oldVal, newVal) {
console.log("this.attributeChanged()");
console.log(attrName, 'old: ' + oldVal, 'new:', newVal);
this.writeDiagram();
},
writeDiagram : function(){
[...]
},
json: {
data:[
{"name":"Texts","value":"150"},
{"name":"Videos","value":"50"},
{"name":"Audio","value":"30"},
{"name":"Test","value":"20"},
{"name":"Test","value":"20"},
{"name":"Test","value":"20"}
]}
});
</script>
</polymer-element>
但是当我手动处理属性时,属性更改() 函数不会触发。我做错了什么?我 我 是 绑定输入 三.当我从画布图元素更改属性时,更改它也不会触发函数 ald。
这取决于属性的变化。 我认为没有一种全局方法来检查所有归因的变化。 我很确定您必须通过其自身来检查每个属性以进行更改。 例如,如果我想知道元素的 type 属性何时更改,我会使用这样的函数。
typeChanged: function () {
console.log(this.type);
}
然后,您需要为更改时需要触发的每个属性创建一个类似于上面的函数。
编辑:下面是我能想到的最简单的例子。 该按钮将更改元素的 text 属性,更改将触发 textChanged 函数,该函数将触发警报。
http://plnkr.co/edit/7swMG6dwMqwyutwMaYfd?p=preview
相关文章:
- 两个按钮在初次点击后会触发相同的功能
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能
- chrome.idle.onSteChanged未触发功能
- 当我按下回车键时,如何触发onclick功能
- 如何从chrome扩展在特定网站上触发功能
- 功能提前触发
- 使用视频js功能触发多个视频
- 触发功能时做机场插件文本效果
- 简单的身体加载功能不会触发我的功能
- ng禁用,具有更改时触发的功能
- on单击触发服务器端功能
- 下拉菜单转换为单选按钮,不再触发特定功能
- 可以进行现场重新加载,然后触发点击功能
- 对触发其onclick功能的按钮进行键绑定
- jQuery:在整个文档上触发按键功能,但不在输入和文本区域内
- 无法在指令内的弹出窗口中触发联机功能
- 用php只加载javascript;t触发加载功能
- 点击功能不触发
- onClick功能只触发一次
- jQuery -滚动功能保持触发:只有一次