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

时间:2013-03-08 11:25:12

标签: javascript ajax fetch spine.js

例如,我将此模型作为用户:

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方法可以传递一个回调函数参数,以便在获取完成时撤销,显然不是我想要的。

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。实际上,该文档说明了如何对结果进行分页。

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