例如,我有这个模型作为用户:
var Users = Spine.Model.sub();
Users.configure('Users', 'name', 'gender', 'age');
Users.extend(Spine.Model.Ajax);
Users.extend({url:"/users"});
假设我们已经在数据库中保存了一些数据。如果运行
var users = Users.fetch();
Ajax将向/users发送GET请求,并返回所有结果。
但是如果我想获取所有女性或男性用户,或年龄大于25岁,或按指定顺序排名前10的用户,如何传递这些变量?我在文件中找不到规格说明。fetch方法可以通过一个回调函数参数来在fetch完成时撤销,这显然不是我想要的。
我自己找到了解决方案,实际上文档告诉如何对结果分页。
var Photo = Spine.Model.sub();
Photo.configure('Photo', 'index');
Photo.extend(Spine.Model.Ajax);
Photo.extend({
fetch: function(params){
if ( !params && Photo.last() )
params = {data: {index: this.last().id}}
this.constructor.__super__.fetch.call(this, params);
}
});
但是我发现代码不能运行,首先
this.constructor.__super__.fetch.call(this, params);
应为
this.__super__.constructor.fetch.call(this, params);
其次,如果运行Photo.fetch({data:{id:1}}),它将发送如下的GET请求
GET /photos?[object%20Object]
改正
Photo.fetch({data: $.param({id:1})});
HTTP请求GET /photos?id=1