如何通过ID之外的其他东西获取Backbone.js模型?

And*_*rew 8 backbone.js

Backbone.js的默认方式是,通过ID获取模型的RESTful方法简单而直接.但是,我似乎找不到任何通过不同属性获取模型的示例.如何通过不同的属性获取Backbone.js模型?

var Widget = Backbone.Model.extend({
    urlRoot: '/widgets',
    fetchByName: function(){ ... }
});
var foowidget = new Widget({name: 'Foo'});
foowidget.fetchByName();
Run Code Online (Sandbox Code Playgroud)

Den*_*ngo 14

您可以尝试在base model定义时或在调用fetch时按需执行此类操作.

model.fetch({ data: $.param({ someParam: 12345}) });
Run Code Online (Sandbox Code Playgroud)

在你的情况下,沿着.

var Widget = Backbone.Model.extend({
    initialize: function(options) {
        this.name = options.name;        
    },
    urlRoot: '/widgets',
    fetchByName: function(){ 
        this.fetch({ data: $.param({ name: this.name }) }) 
    }
});

var foowidget = new Widget({name: 'Foo'});
foowidget.fetchByName();
Run Code Online (Sandbox Code Playgroud)

  • 您应该在`fetchByName`方法中返回`this.fetch(...)`,这样就可以将`.then()`,`.done()`和`.fail()`回调附加到它. (3认同)