我希望我的铁路由器前钩子执行,只有当我的路径改变。
在我的标题(布局)中有一个关键字搜索字段,当我更改页面时,这个字段被重置,而不是当我停留在同一个页面并触发一些事件时。
我该怎么做?
这就是我所拥有的:
Router.onBeforeAction ->
$(".notification").remove()
Session.set("keyword_search","")
$("#keyword-search").val("")
return即使我单击一个不改变路由的按钮,也会执行onBeforeAction钩子。这不是我想要的。
我试过像这样使用document.referrer
Router.onBeforeAction ->
$(".notification").remove()
if document.referrer.indexOf @path == -1 #only if new path
Session.set("keyword_search","")
$("#keyword-search").val("")但是它不起作用,因为当我单击页面按钮时,引用程序仍然是具有不同url的最后一个页面,并且我的keyword_search字段将被重置。
有什么想法吗?
发布于 2014-09-06 07:43:12
这里的解决方案是使用onRun钩子。
onRun是在每次路由更改时触发的(而不是像我想的那样在每个路由器启动时触发)。
发布于 2014-09-04 20:23:07
为什么不直接将路径存储在会话变量中,并检查它是否已更改?从您的第二个代码块:
Router.onBeforeAction ->
$(".notification").remove()
unless Session.equals("current_path", @path) # only if new path
Session.set("current_path", @path)
Session.set("keyword_search", "")
$("#keyword-search").val("")https://stackoverflow.com/questions/25619291
复制相似问题