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);
});
});

また、JSON オブジェクト {foo: "bar"} を返すバックエンド サービス /getInfo?id= があるとします。

質問: 1) API.getSomeEntity メソッドには何を配置すればよいですか? 2) 非同期にする方法は?

4

1 に答える 1

0

基本的に、Backbone は、モデルに null 以外の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');
    }
});

最後の質問について: バックボーンは、デフォルト/設計によりデータを非同期的にフェッチします。

于 2013-10-02T13:33:50.677 に答える