首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星铁路由器只有在路径改变时才执行操作

流星铁路由器只有在路径改变时才执行操作
EN

Stack Overflow用户
提问于 2014-09-02 08:44:02
回答 2查看 163关注 0票数 1

我希望我的铁路由器前钩子执行,只有当我的路径改变。

在我的标题(布局)中有一个关键字搜索字段,当我更改页面时,这个字段被重置,而不是当我停留在同一个页面并触发一些事件时。

我该怎么做?

这就是我所拥有的:

代码语言:javascript
复制
Router.onBeforeAction ->
  $(".notification").remove()
  Session.set("keyword_search","")
  $("#keyword-search").val("")
  return

即使我单击一个不改变路由的按钮,也会执行onBeforeAction钩子。这不是我想要的。

我试过像这样使用document.referrer

代码语言:javascript
复制
Router.onBeforeAction ->
  $(".notification").remove()
  if document.referrer.indexOf @path == -1  #only if new path
    Session.set("keyword_search","")
    $("#keyword-search").val("")

但是它不起作用,因为当我单击页面按钮时,引用程序仍然是具有不同url的最后一个页面,并且我的keyword_search字段将被重置。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-06 07:43:12

这里的解决方案是使用onRun钩子。

onRun是在每次路由更改时触发的(而不是像我想的那样在每个路由器启动时触发)。

票数 0
EN

Stack Overflow用户

发布于 2014-09-04 20:23:07

为什么不直接将路径存储在会话变量中,并检查它是否已更改?从您的第二个代码块:

代码语言:javascript
复制
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("")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25619291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档