如何使用spinejs获取ajax数据与条件



例如,我有这个模型作为用户:

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

相关内容

  • 没有找到相关文章

最新更新