Backbone.js - переход на маршрут после события "click" в представлении
Мой "вид" настроен, как показано ниже. простой.
var ItemView = Backbone.View.extend({
tagName : "li",
events : {
"click" : "display"
},
display : function() {
//app.navigate('item'); // take me to my route!
}
});
И у меня есть маршрутизатор
var App = Backbone.Router.extend({
routes: {
"" : "index",
"item" : "view_item"
},
index: function() {
alert('hi!');
},
view_item: function() {
alert('bye!');
}
});
app = new App();
Backbone.history.start();
Теперь, когда я нажимаю ItemView, он должен запускать метод "display", и я хочу, чтобы метод отображения передал меня на маршрут, указанный в маршрутах "item".
Возможно ли это? Я думал, что функция "навигации" будет работать, но это не так. Как я мог достичь этого?
Ответы
Ответ 1
display : function() {
app.navigate('item', true);
}
Второй параметр должен быть равен true.
В документации на базовую станцию:
navigaterouter.navigate(фрагмент, [triggerRoute]) Всякий раз, когда вы достигаете точки в своем приложении, которую хотите сохранить в качестве URL-адреса, перейдите по ссылке, чтобы обновить URL-адрес. Если вы хотите также вызвать функцию маршрута, пропустите triggerRoute.
Ответ 2
Или вы можете сделать это непосредственно из html, если вы используете тег "<a> ".
Пример:
<a href="#item">Show Itens</a>
Он также работает, я предпочитаю этот путь, когда, конечно, возможно.