Как разделить основные компоненты и компоненты? - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть проект, в котором участвуют три веб-разработчика.Мы собираемся использовать backbone или ember.js, но у меня есть проблема.

Я использую backbone с глобальной переменной, как в следующей строке.

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

, так как мы работаем как команда, я не думаю, что это лучший способ.Кроме того, backbone или ember.js не предоставляют систему событий (шаблоны публикации или подписки ..).

Что было бы лучшим в этом случае?или как вам удалось работать в таком проекте?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Я рекомендую использовать любой из вложенных шаблонов пространства имен, например:

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 вы можете вернуться на 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) {
});
1 голос
/ 23 декабря 2013

Ember имеет отличное разделение проблем из коробки. По умолчанию все имеет пространство имен. Если вы предпочитаете использовать модули вместо глобальных значений Ember по умолчанию, посмотрите ember-app-kit. https://github.com/stefanpenner/ember-app-kit

Что касается событий в Ember, я бы посоветовал вам прочитать доклад о действиях и событиях в Ember: http://www.lukemelia.com/blog/archives/2013/09/19/events-actions-in-ember-js/

...