代码之家  ›  专栏  ›  技术社区  ›  jaronnan

聚合物2.0功能之外的聚合物访问功能

  •  0
  • jaronnan  · 技术社区  · 7 年前

    ready() {
        super.ready();
        //this.displayData("12","13");
        console.log(this);
        var database = firebase.database();
        var myDataref = database.ref('sessions/1');
        myDataref.on('child_added', function(snapshot) {
            var message = snapshot.val();
            //console.log("Left: "+message.left);
            //console.log("Right: "+message.left);
            console.log(this);
            //this.displayData(message.left, message.right);
        });
      }
    
      displayData(leftData, rightData) {
        var para = document.createElement("li");
        var t = document.createTextNode("Left: "+leftData+", Right: "+rightData);
        para.appendChild(t);
        console.log(para);
        this.$.mes.appendChild(para);
      }
    

    Code

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ofisora    7 年前

    简单的方法是为 this 并在firebase侦听器中使用它。

    例子:

    ready() {
      super.ready();
    
      var _this = this;
      ...
      myDataref.on('child_added', function(snapshot) {
         ...
        _this.displayData(message.left, message.right);
      });
    }
    

    另一种方法是使用Javascript bind method

    例子:

    ready() {
      super.ready();
    
      ...
      myDataref.on('child_added', function(snapshot) {
         ...
        this.displayData(message.left, message.right);
      }.bind(this));
    }