@deadkEEper1

Почему не рендерится вюха при переходе на урл путем router.navigate?

И так, есть роутер на 2урла
var Router = Backbone.Router.extend({
	routes: {
		''		:   'homepage',
		'users' :  'user'
	},

	users : function(){
		var  userView = new UsersView();
			 userView.render();

	},

	homepage: function(){
		var homepageView = new HomepageView();
			homepageView.render();
	}


})


Стартовая страница имеет текст и одну кнопку.
конструктор вюхи
var HomepageView = Backbone.View.extend({
	el: 'body',
	events: {
		'click  #button': 'show'
	},

	show: function(){
		router.navigate('users', {trigger: true})
	},
	template: _.template($("#homepageTemplate").html()),
	render: function(){
	this.$el.html(this.template())
	return this;	
	}

})


А тут шаблон.
<script type="text/template" id="homepageTemplate">
	<h1>Welcome</h1>
		 <button id="button">Button</button>
</script>


При нажатии на кнопку, срабатывает роутер на 'users'( в строке браузера это видно, localhost:3030/#users), но ничего не рендерится. А если вручнию вбить урл 'users', то все ок.

В чем может быть проблема?
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 2
magalex
@magalex
Архитектор распределённых систем управления
Ничего не рендерится потому, что у Вас происходит переход по ссылке внутри страницы без обращения к серверу (смотрите что такое якорь)
Ответ написан
router.navigate('users', {trigger: true,replace:true})

router.navigate doc
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы