あり、この目的のためにBackbone.Model
Sを使用したと間違って何も客観ませんが、関係なく、それは怪しい感じています。モデルには、「サービス」または「ユーティリティ」タイプのクラスに属さない余分な手荷物が付属しています。
代わりに、Backbone Model-View-Collection-Routerのパラダイムにはあまり合わない機能のために、より一般的な、イベントベースのクラスを定義しました。それはextend
EDできることに
define(['backbone', 'underscore'], function(Backbone, _) {
var Class = function() {
this.initialize.apply(this, arguments);
};
//give Class events and a default constructor
_.extend(Class.prototype, Backbone.Events, {initialize: function() {}});
//copy the extend feature from one of the backbone classes
Class.extend = Backbone.Model.extend;
return Class;
});
クラスは、他のバックボーンのオブジェクトと同じように動作し、そのインスタンスはinitialize
コンストラクタメソッドを持っており、彼らがイベントをサポート。あなたの例の一つ、ローカリゼーションサービスは、のようになります:で http://addyosmani.github.com/backbone-fundamentals/
右:アディOsmaniによって 「BACKBONE.JSアプリケーションの開発」の無料BACKBONE.JSのebookがあり
var LocalizationService = Class.extend({
initialize: function(url) {
this.url = url;
this.fetch();
},
fetch: function({
var self = this;
$.ajax({
url:this.url,
success: function(response) {
self.response = response;
self.trigger('fetch:complete', self, response);
//etc...
}
});
}
});
大きな質問!これはまさに私が探していたものです。それは閉鎖されているばかげた。 – Kieveli