Search code examples
javascriptpolymerpolymer-1.0

Polymer1: addEventListener for Notify Not Working as Expected


I am trying to call window.addEventListener on my custom behavior however im not having any luck getting it to work.

test-bahvior.html

<script>
    "use strict";

    window.MyTest = window.MyTest || {};
    
    MyTest.Test = {
      properties: {
        globals: {
          type: Boolean,
          notify: true,
          value: false
        }
      },
    
      ready: function() {
        setTimeout(() => {
            this.globals = true;
            console.log('changed val ' + this.globals);
        }, 5000);
      },
    };
</script>

i am then trying to callwindow.addEventListener("globals-changed", this._test); in the ready: function() of another html file (myapp.html) however this._test doesnt seem to fire despite the setTimeout causing the value change.

I have been following the Polymer 1 docs: https://polymer-library.polymer-project.org/1.0/docs/devguide/properties#notify

Help is much appreciated.

TIA


Solution

  • In order for Polymer to detect the changes correctly (i.e. notify the dom), use the following:

    this.set("globals", true);