بهترین مثالی که دیدمModel:
define(function (require) {
"use strict";
var $ = require('jquery'),
Backbone = require('backbone'),
Employee = Backbone.Model.extend({
initialize: function () {
this.reports = new EmployeeCollection();
this.reports.url = this.urlRoot + "/" + this.id + "/reports";
}
}),
EmployeeCollection = Backbone.Collection.extend({
model: Employee,
});
return {
Employee: Employee,
EmployeeCollection: EmployeeCollection
};
});
View:
define(function (require) {
"use strict";
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone'),
tpl = require('text!tpl/Employee.html'),
template = _.template(tpl);
return Backbone.View.extend({
render: function () {
this.$el.html(template());
return this;
}
});
});
define(function (require) {
"use strict";
var $ = require('jquery'),
Backbone = require('backbone'),
$content = $("#content");
return Backbone.Router.extend({
routes: {
"": "home",
"employees/:id": "employee"
},
home: function () {
require(["app/views/Home"], function (HomeView) {
var view = new HomeView({el: $content});
view.render();
});
},
employee: function (id) {
require(["app/views/Employee", "app/models"], function (EmployeeView, models) {
var employee = new models.Employee({id: id});
employee.fetch({
success: function (data) {
var view = new EmployeeView({model: data, el: $content});
view.render();
}
});
});
}
});
});
فقط کاری که کرده اینه که همه فایل های مورد نیاز همون اول در هر ماژول لود میشن که فلسفه
requirejs مقداری زیر سوال میره
اگر کد رو به جای
مثلا
_ = require('underscore'),
اینشکلی
ShellView =function(){return require(['underscore'],function(){return this})}
یا اینشکلی
ShellView =function(){return require(['underscore'])}
لود کنیم بعد هر بار خواستیم ازش استفاده کنیم به جای
ShellView
بزنیم
ShellView()
بهتر هستش