I just tried it from CDE, and it worked as expected (apologies for stupid
chrome console cut&paste nonsense):
...: attributeName: some-attribute
my-element.html:8 oldValue one
my-element.html:9 newValue two
my-element.html:7 attributeName: other-attribute
my-element.html:8 oldValue null
my-element.html:9 newValue new
from this code :
<!doctype html>
<html>
<head>
<title>helloworld</title>
<link rel="stylesheet" href="styles.css">
<link rel="import" href="my-element.html">
</head>
<body unresolved>
<my-element id="my_element" some-attribute="one"></my-element>
<script>setTimeout(function() {
var myElement = document.getElementById("my_element");
myElement.setAttribute("some-attribute", "two");
myElement.setAttribute("other-attribute", "new");
},1000);</script>
</body>
</html>
and
<link rel="import" href="bower_components/polymer/polymer.html">
<polymer-element name="my-element" attributes="some-attribute">
<script>
Polymer({
attributeChanged: function(attributeName, oldValue, newValue) {
console.log("attributeName:", attributeName);
console.log("oldValue", oldValue);
console.log("newValue", newValue);
}
})
</script>
</polymer-element>
Perhaps you can spot something different between what I tried and what you
tried?
Max.
On Fri Jan 09 2015 at 20:44:17 Niko Lang <[email protected]> wrote:
> When I have the Object
>
> <canvas-diagram type="bar" width="500" height="400"></canvas-diagram>
>
> and I change one of its attributes the function should fire.
>
>
>
>
>
> On Friday, January 9, 2015 at 1:37:27 PM UTC+1, David Waterman wrote:
>
>> How/where exactly are you changing the attribute? I imagine on an
>> instantiation of this polymer element?
>>
>> You could, of course, add an intermediate function, itself called by the
>> attributeChanged function and call that function directly; but I suspect
>> you're asking an underlying question.
>>
>> Max.
>>
>> On Fri Jan 09 2015 at 18:24:57 Niko Lang <[email protected]> wrote:
>>
> I have a simple canvas object like this:
>>>
>>> <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>
>>>
>>> But when I canhage an attribute manually the attributeChanged() Function
>>> doesnt fire. What am I doing wrong?
>>>
>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Polymer" group.
>>>
>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to [email protected].
>>
>>
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/polymer-dev/1d271638-10b1-42bb-9faa-c594f4738f07%
>>> 40googlegroups.com
>>> <https://groups.google.com/d/msgid/polymer-dev/1d271638-10b1-42bb-9faa-c594f4738f07%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/dcd6077d-51af-4543-b1d2-d95f8aadf684%40googlegroups.com
> <https://groups.google.com/d/msgid/polymer-dev/dcd6077d-51af-4543-b1d2-d95f8aadf684%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/polymer-dev/CAMZCrPicRPvVnV87%2BfWHTzG2Ub4HUfCFmnpTO9ouNYV-4rN6Kw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.