主干:单击浏览器的后退按钮时调用视图的函数
Backbone: Call a function of the view when back button of browser is clicked
我想在单击浏览器的后退按钮时调用当前视图的函数deleteMarker
。我搜索过类似的问题,但没有一个可以帮助我。
单击后退按钮时,我想调用函数deleteMarker
的当前视图:
ev.views.Evento = Backbone.View.extend({
map: 'null',
initialize: function(id){
.....
},
// function that will call
deleteMarker: function(){
this.marker.remove();
},
render: function(id){
.....
}
});
应用.js
var ev = new Application();
ev.Router = Backbone.Router.extend({
routes: {
"": "home",
"evento/:id" : "evento"
},
home: function(){
setTimeout(function(){
$('#rightcolumn').html(new ev.views.Home_Eventos(ev.shell.map).el);
}, 0);
},
evento: function(id){
$('#rightcolumn').html(new ev.views.Evento(id).el);
}
});
$(document).on('ready', function() {
ev.templateLoader.load(['shell', 'home_list_eventos', 'evento'], function () {
ev.shell = new ev.views.Shell({el: "#shell"});
ev.router = new ev.Router();
Backbone.history.start();
});
});
我在这里找到了解决方案:骨干网.js历史"路线更改"事件。这是我的解决方案:
ev.router.on("route", function(route, params) {
if(route == "home"){
console.log("Different Page: " + route);
that.deleteMarker();
}
});
当我按下浏览器的后退按钮时,它会检查路线是否回家。如果是,则触发函数或任何您想要的内容。我希望这对您将来有所帮助。
我会使用 .onpopstate 函数过滤事件,检查是否已触发 history.back((。我不确定将什么对象传递给回调,因此请检查"事件"如何结构化过滤器是否足够。
window.onpopstate = function(event) {
if(event == "Backbone.history.back()") triggersomething();
};
让我知道它是否有效。希望对您有所帮助。
相关文章:
- AngularJS UI路由器,部分视图和来自浏览器地址栏的调用视图
- 从 ko.computed 语句中的视图模型调用视图模型时遇到问题
- 主干:单击浏览器的后退按钮时调用视图的函数
- 无法在单击按钮时调用视图函数主干
- 我可以在挖空时调用视图模型外部的函数吗?
- 骨干 JS - 路由器功能 - 调用视图
- 指令在调用视图中不起作用,但在索引.html页面中很好
- 在 secha 触摸 MVC 模式中从控制器调用视图
- 调用视图中的另一个控制器Angular
- 是否可以在一个集合的add处理程序中调用视图上的方法?
- ionic框架中调用视图的Ui-router问题
- 从JavaScript调用视图
- 用BackboneJS从子视图调用视图函数
- 如何从控制器中调用视图元素
- 如何使用Rails 3.1在JavaScript中调用视图助手方法
- ZF2:如何在服务中调用视图助手
- 调用视图中的骨干模型函数
- 当我在codigniter中从其他视图调用视图时,找不到页面
- 从另一个视图调用视图并在Backbone中为其传递模型的最佳方式
- Codeigniter:从控制器调用视图中的函数