gpt4 book ai didi

javascript - 如何在集合中使用 Parse.query(类似 Backbone)

转载 作者:行者123 更新时间:2023-12-03 12:25:51 24 4
gpt4 key购买 nike

我正在尝试从 parse.com 中的类中获取 Parse.Collection。一切正常,但 fetch 返回一个空数组(并且 parse.com 中的类不为空)。我不知道如何使用 Parse.Query

我做错了什么?如何进一步调试以缩小错误范围?

谢谢

这是我的代码:

Parse.initialize("XXX", "XXX");

var AppRouter = Parse.Router.extend({
routes: {
"class-list": "listClasses",
},

initialize: function () {
var self = this;
this.loginView = new LoginView();

// ----------------------------------------------------CLASS
// |-----> Collection
var ClassModel = Parse.Object.extend({
className: "Classes"
});
this.classModel = new ClassModel();
// |-----> Query
var ClassQuery = new Parse.Query(ClassModel);
ClassQuery.find({
success: function(results) {
// results is an array of Parse.Object.
return results;
},

error: function(error) {
// error is an instance of Parse.Error.
}
});
// |-----> Collection
var ClassCollection = Parse.Collection.extend({
model: ClassModel,
query: ClassQuery

});
this.classCollection = new ClassCollection();
this.classCollection.fetch();
// |-----> View
var ListClassView = Parse.View.extend({
initialize: function () {
//this.listenTo(this.collection, "reset", this.render);
},
render: function () {
this.$el.html(Handlebars.templates.class_list(this.collection));
return this;
}
});
this.listClassView = new ListClassView({
collection: self.classCollection
});
},
});

var app = new AppRouter();
Parse.history.start();

以下是有关 safari 请求的信息: request response

最佳答案

在您的 success: 处理程序中,您有以下行:

return results;

我不确定您在这里期望什么,但将会发生的情况是您将结果返回到调用成功处理程序的解析代码。事实上,整个 find() 调用应该被删除。对集合的 fetch() 调用将为您调用底层查询。

从我在Collections的文档中可以看到的,如果您希望集合基于查询,您可以按如下方式操作:

// UpperCamel for object we can use with new
var ClassModel = Parse.Object.extend("Classes");
// lowerCamel for a local variable
var classQuery = new Parse.Query(ClassModel);
// you don't call find() directly on the query, that'll mess things up

// UpperCamel for a collection definition
var ClassCollection = Parse.Collection.extend({
model: ClassModel,
query: classQuery
});

this.classCollection = new ClassCollection();

// at this point I would suggest connecting to the view first, then call fetch()

// ... ListClassView declaration skipped for brevity ...
this.listClassView = new ListClassView({
collection: self.classCollection
});
this.classCollection.fetch();

关于javascript - 如何在集合中使用 Parse.query(类似 Backbone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24213851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com