Devo creare una vista di base che estenda tutte le mie viste. Non sono sicuro di dove e quando dichiarare questa vista.Come creare una vista base in backbone.js?
Fondamentalmente, ho bisogno di iniettare global variables
in tutti i miei modelli e non lo faccio in tutti i metodi render()
.
questo è il mio struttura ad albero, per ora:
|-main.js
|-app.js
|-require.js
|-App
| |-View
| | |-Dashboard.js
| | |-Header.js
| | |-Content.js
| |-Model
| |-Collection
| |-Template
|
|-Libs
|-...
questo è il mio app.js
var App = {
ApiURL: "http://domain.local",
View: {},
Model: {},
Collection: {},
Registry: {},
Router: null
};
define(['backbone', 'View/Dashboard'], function(Backbone){
var AppRouter = Backbone.Router.extend({
routes : {
"dashboard": "index",
},
index: function() {
console.log('routing index route...');
var x = new App.View.Dashboard({el:$('#main-content'), type:'other'});
}
});
var initialize = function() {
App.Router = new AppRouter;
Backbone.history.start({pushState: true});
console.log('Backbone is running...');
};
return {
initialize : initialize
};
});
E per ora tutta la mia vista ereditano da Backbone.View
come questo:
App.View.Dashboard = Backbone.View.extend({
Voglio creare il mio Base View
che tutte le viste dall'applicazione wou ld si estende. Questo è quello che ho fatto fino ad ora, ma non so dove posizionare questo pezzo di codice perché in app.js sto caricando la vista Dashboard quindi ho bisogno di farlo prima, ma ho bisogno di richiedere questa base vista degli oggetti in tutte le viste ... così mi sono perso :(
define(['backbone', 'underscore', 'twig'], function(Backbone, _){
App.View.Base = Backbone.View.extend({});
_.extends(App.View.Base.prototype, {
initialize: function(params)
{
this.el = params.el;
this.init(params);
},
init: function(params)
{
},
renderTemplate:function(template_path, data)
{
var tpl = twig({href:template_path, async:false});
// Inject variables
data.user = App.Registry.User;
data.account = App.Registry.Account;
return tpl.render(data);
}
});
});
qualsiasi idea o osservazioni sono benvenuti Una risposta sarebbe la migliore:. D
Grazie, Maxime
Ho finito per farlo in un altro modo ma questa risposta sembra la migliore per la mia domanda;) – maxwell2022