2012-02-09 8 views
0

私は3つのフロントエンド開発者を含むプロジェクトを持っています。私たちはバックボーンやember.jsを使うつもりですが、私は心配しています。バックボーン/エバーコンポーネントを分離するにはどうすればよいですか?

私は、グローバル変数でバックボーンを使用していますが、次の行が好きです。

Window.mymodel = Backbone.Model.extend({});

チームとして働いているので、私はそれが最善の方法だとは思わない。さらに、バックボーンまたはember.jsは、イベントシステム(パブリッシュまたはサブスクライブパターン..)を提供しません。

この場合のベストプラクティスは何ですか?またはこのようなプロジェクトでどうやって作業しましたか?

答えて

2

私はこのようなネストされた名前空間パターンのいずれかを使用することをお勧め:

var App = App || {}; 
App.Model = App.Model || {}; 

App.Model.MyModel = Backbone.Model.extend({}); 

(本以上に良い書き込みアップのためhttps://github.com/addyosmani/backbone-fundamentals#namespacingを参照)またはrequire.js

define(['Backbone'], 
    function (Backbone) { 

    MyModel = Backbone.Model.extend({}); 

    return MyModel ; 
}); 

... 

require('MyModel', function(MyModel) { 
    var myModel = new MyModel(); 
}); 
のようなAMDローダーを使用して

バックボーンのイベントでは、Backbone.Eventsをピギーバックできます。

// Declare globally or pass around 
var app = _.extend({}, Backbone.Events); 

// Trigger an event 
app.trigger("myEvent", model); 

// Catch an event 
app.bind("myEvent", function(model) { 
}); 
+0

は、提案をありがとう! – Moon

1

Emberは、すぐに気になることから離れています。デフォルトでは、すべてが名前空間です。Emberのデフォルトグローバルの代わりにモジュールを使用する場合は、ember-app-kitをチェックしてください。エンバーのイベントについてhttps://github.com/stefanpenner/ember-app-kit

、私はアクションエンバーで&イベントについて与えた話をチェックアウトすることをお勧めしたい:http://www.lukemelia.com/blog/archives/2013/09/19/events-actions-in-ember-js/

関連する問題