Im new to backbone and there is one problem I cant figure out. I use backbone with require.js. When I want to render some view for the first time (when I reload page in browser) index.html shows up immediately but then it is hidden for about 2 seconds and then showed again with rendered templates. If I then navigate between views (without hitting refresh) it works smooth, but that initial render does something wrong. Here is my code:
View:
define(['jquery','underscore','backbone', 'text!../../../templates/home/HomeView.tpl'],
function($, _, Backbone, HomeTemplate)
{
var HomeView = Backbone.View.extend(
{
events:{
},
render: function ()
{
var template = _.template(HomeTemplate);
this.$el.html(template);
return this;
}
});
return HomeView;
});
Router:
define(['jquery','underscore','backbone'],
function($, _, Backbone)
{
var container = $("#container");
var AppRouter = Backbone.Router.extend(
{
routes:
{
"": "home"
},
home: function()
{
require(['views/home/HomeView'],
function(HomeView)
{
var Home = new HomeView({el: container});
Home.render();
});
}
});
var initialize = function()
{
var app_router = new AppRouter();
Backbone.history.start();
};
return { initialize: initialize };
});
I get no error in console. Is this behavior normal?