将 Parse.com 与 Polymer 一起使用

Using Parse.com with Polymer

我在从 Parse.com 函数内部编辑 Polymer Javascript 代码中的对象时遇到问题。在我将字符串 "foo" 添加到 Parse.com 函数中的数组后,它说它包含一个项目,但它似乎从未真正被添加过。有人知道怎么回事吗?

Polymer({        
    users: [],
    created: function () {
        this.getUsers();
    },
    getUsers: function () {
        var query = new Parse.Query(Parse.User);
        query.find().then(function (objects) {
            this.users = ["foo"];
            alert(this.users.length);
        });
    }
});

我猜this不是你想的那样,你需要将回调函数绑定到自定义元素。

handleCallback: function(objects) {
  this.users = ["foo"];
},
getUsers: function () {
    var query = new Parse.Query(Parse.User);
    query.find().then(this.handleCallback.bind(this));
}

由于解析查询是异步的,因此它离开了聚合物脚本的范围。"this" 此时指的是 window 我的一个项目遇到了这个问题。我最终只是在元素外部进行查询并将数据传递给它:

<user-polymer-element></user-polymer-element>
<script>
var query = new Parse.Query(Parse.User);
        query.find().then(function (objects) {
            document.querySelector('user-polymer-element').users = ["foo"];
        });
    }
</script>
getUsers: function () {
    var that = this;
    var query = new Parse.Query(Parse.User);
    query.find().then(function (objects) {
        that.users = ["foo"];
        alert(that.users.length);
    });
}