는 세 응답, 여기 내 조언은, 당신에게 질문에 대답하려면 :
모듈은 가능한 작게해야한다, 그래서 각 뷰, 모듈에 대한 하나의 새로운 모듈을 만들 것이고, 직렬화 하나 논리. 그런 다음 외부 코드가 모델, 뷰 또는 직렬화를 처리 할 필요가 없도록 모든 것을 함께 묶는 모듈 하나를 만들 것입니다. 한편 만 require("components/populationVisualization")
하고 적절한 매개 변수를 해당 모듈의 createAndRender
메서드를 호출 할 응용 프로그램에서
// components/populationVisualization/Model.js
define(function (require, exports, module) {
return Backbone.Model.extend({ /* ... */});
});
// components/populationVisualization/views/Timeslider.js
define(function (require, exports, module) {
return Backbone.View.extend({ /* ... */});
});
// components/populationVisualization/views/Legend.js
define(function (require, exports, module) {
return Backbone.View.extend({ /* ... */});
});
// components/populationVisualization/serializer.js
define(function (require, exports, module) {
exports.setupSerialization = function (model) {
// ...
};
});
// components/populationVisualization.js
define(function (require, exports, module) {
var Model = require("./populationVisualization/Model");
var TimesliderView = require("./populationVisualization/views/Timeslider");
var LegendView = require("./populationVisualization/views/Legend");
var serializer = require("./populationVisualization/serializer");
exports.createAndRender = function (modelParams, $el) {
var model = new Model(modelParams);
serializer.setupSerialization(model);
var timesliderView = new TimesliderView({ model: model });
var legendView = new LegendView({ model: model });
$el.append(timesliderView.el);
$el.append(legendView.el);
};
});
:
다음은이 같은에서 처음 자상이다.