使用 backbonejs 的非常规 api 请求(例如通过电子邮件获取)

Nonconventional api requests with backbonejs (such as get by email)

我正在构建一个 backbonejs 客户端,但是为了填充模型,我不知道要从服务器请求的 ID。相反,我只有电子邮件地址属性。

API 有一个像 v1/people/:email_address 这样的端点,我想用它来填充我的模型。

这可能吗?

当然可以。假设电子邮件地址是唯一的,您可以简单地将其定义为模型的唯一标识属性

var People = Backbone.Model.extend({
  idAttribute: "email_address"
});

您还可以定义一个 url 方法来计算模型的 URL。

var People = Backbone.Model.extend({
  url: function() {
    return 'v1/people/:' + this.get('email_address')
  }
});

如果您使用集合而不是单个模型来获取数据,则可以对集合执行相同的操作。