Javascript Backbone.js+;Require.js和ViewsFactory
假设我们有这样的测试代码:Javascript Backbone.js+;Require.js和ViewsFactory,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,假设我们有这样的测试代码: var App = (function () { var api = { Router: null, init: function () { this.content = $("#content"); Backbone.history.start(); return this; } }; var ViewsFactory
var App = (function () {
var api = {
Router: null,
init: function () {
this.content = $("#content");
Backbone.history.start();
return this;
}
};
var ViewsFactory = {
view1: function () {
var model1 = new model1();
return new api.Views.View1({
model: model1
});
},
view2: function () {
var model2 = new model2();
return new api.Views.View2({
model: model2
});
},
view3: function () {
var model3 = new model3();
return new api.Views.View3({
model: model3
});
},
};
var Router = Backbone.Router.extend({
routes: {
"": "view1",
"2": "view2",
"3": "view3",
},
view1: function () {
var view1 = ViewsFactory.view1();
$(".content").html(view1.render().el);
},
view2: function () {
var view2 = ViewsFactory.view2();
$(".content").html(view2.render().el);
},
view3: function () {
var view3 = ViewsFactory.view3();
$(".content").html(view3.render().el);
},
});
api.Router = new Router();
return api;
})();
var $ = require('jquery'),
Backbone = require('backbone');
我想使用Require.js。请不要把重点放在名字上,而要放在想法上
标记的目的是什么为什么不建一个景观工厂呢。对你来说,我不确定它是否真的有用
requirejs将帮助构建可重用的模块 路由器中的最佳选项是使用如下变量:
var App = (function () {
var api = {
Router: null,
init: function () {
this.content = $("#content");
Backbone.history.start();
return this;
}
};
var ViewsFactory = {
view1: function () {
var model1 = new model1();
return new api.Views.View1({
model: model1
});
},
view2: function () {
var model2 = new model2();
return new api.Views.View2({
model: model2
});
},
view3: function () {
var model3 = new model3();
return new api.Views.View3({
model: model3
});
},
};
var Router = Backbone.Router.extend({
routes: {
"": "view1",
"2": "view2",
"3": "view3",
},
view1: function () {
var view1 = ViewsFactory.view1();
$(".content").html(view1.render().el);
},
view2: function () {
var view2 = ViewsFactory.view2();
$(".content").html(view2.render().el);
},
view3: function () {
var view3 = ViewsFactory.view3();
$(".content").html(view3.render().el);
},
});
api.Router = new Router();
return api;
})();
var $ = require('jquery'),
Backbone = require('backbone');