我有一個涉及三個前端開發人員的項目。我們將使用主幹或ember.js,但我有一個問題。如何分離backbone/ember組件?
我一直在使用全局變量的骨幹像下面一行。
Window.mymodel = Backbone.Model.extend({});
由於我們是一個團隊工作,我不認爲這是最好的方法。另外,backbone或ember.js不提供事件系統(發佈或訂閱模式..)。
這種情況下最好的做法是什麼?或者你是如何設法在這樣的項目中工作的?
我有一個涉及三個前端開發人員的項目。我們將使用主幹或ember.js,但我有一個問題。如何分離backbone/ember組件?
我一直在使用全局變量的骨幹像下面一行。
Window.mymodel = Backbone.Model.extend({});
由於我們是一個團隊工作,我不認爲這是最好的方法。另外,backbone或ember.js不提供事件系統(發佈或訂閱模式..)。
這種情況下最好的做法是什麼?或者你是如何設法在這樣的項目中工作的?
我建議您使用類似這樣的嵌套命名空間模式:
var App = App || {};
App.Model = App.Model || {};
App.Model.MyModel = Backbone.Model.extend({});
(見https://github.com/addyosmani/backbone-fundamentals#namespacing一個很好的寫了這條以上)
或使用AMD裝載機像require.js
define(['Backbone'],
function (Backbone) {
MyModel = Backbone.Model.extend({});
return MyModel ;
});
...
require('MyModel', function(MyModel) {
var myModel = new MyModel();
});
對於具有骨幹的事件,您可以在Backbone上背馱式。事件
// 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) {
});
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/
謝謝你的建議! – Moon 2012-02-10 01:44:01