0

假设我有以下实体:

MyApp.module('Entities', function(Entities, MyApp, Backbone, Marionette, $, _) {
Entities.SomeEntity = Backbone.Model.extend({});

var API = {
    getSomeEntity: function(someEntityId) {
        // What goes here?
    }
};

MyApp.reqres.setHandler("someEntity:entities", function(someEntityId) {
    return API.getSomeEntity(someEntityId);
});
});

假设我有一个后端服务 /getInfo?id= 返回一个 JSON 对象 {foo: "bar"}。

问题:1)我应该在 API.getSomeEntity 方法中放置什么?2)如何使其异步?

4

1 回答 1

0

基本上,Backbone 认为如果模型具有非空id属性,则它存在于远程 API 上。如果您调用fetch该模型实例,它将联系请求数据的 API。所以你会做这样的事情:

getSomeEntity: function(someEntityId) {
    var myModel = new Entities.SomeEntity({id: someEntityId});
    myModel.fetch();
    return myModel;
}

由于您使用的是非标准 API,因此您还需要定义 API 端点:

Entities.SomeEntity = Backbone.Model.extend({
    url: function(){
        return "/getInfo?id=" + this.get('id');
    }
});

至于你的最后一个问题:Backbone 默认/设计异步获取数据。

于 2013-10-02T13:33:50.677 回答