Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在保持相同参数的情况下更新主干URL以获取新数据 问题_Javascript_Backbone.js_Routes_Url Routing - Fatal编程技术网

Javascript 如何在保持相同参数的情况下更新主干URL以获取新数据 问题

Javascript 如何在保持相同参数的情况下更新主干URL以获取新数据 问题,javascript,backbone.js,routes,url-routing,Javascript,Backbone.js,Routes,Url Routing,我有一个从api请求任务的集合,其url设置为/api/tasks/。我希望能够根据日期和环境(工作、家庭等)获得不同的任务。当浏览到具有不同参数的url时,集合将使用额外参数更新其url并获取新数据 为了实现这一点,我创建了两个小部件,一个日历小部件和上下文选择器。日历中的链接将指向year/xxxx/month/xx/day/xx,选择器链接可能指向context/work。我点击一个日期,然后导航到myapp.com/tasks/#year/2012/month/09/day/25。现在我

我有一个从api请求任务的集合,其url设置为/api/tasks/。我希望能够根据日期和环境(工作、家庭等)获得不同的任务。当浏览到具有不同参数的url时,集合将使用额外参数更新其url并获取新数据

为了实现这一点,我创建了两个小部件,一个日历小部件和上下文选择器。日历中的链接将指向
year/xxxx/month/xx/day/xx
,选择器链接可能指向
context/work
。我点击一个日期,然后导航到
myapp.com/tasks/#year/2012/month/09/day/25
。现在我想查看不同的上下文,但单击会导致我的url更改为
myapp.com/tasks/#context/work
删除我刚才所在的日期

解决方案
  • 我需要保留旧参数,如日期段,同时添加新参数,如竞赛
  • 此外,我需要更新url中已经存在的参数,而不是添加新的参数(例如,将
    myapp.com/tasks/#year/2012/month/09/day/25/context/work
    更改为
    myapp.com/tasks/#year/2012/month/09/day/25/context/home
    ,而不是
    myapp.com/tasks/#year/2012/month/09/day/25/context/work/context/home

我怎样才能做到这一点?

我不明白你的问题。。您可以编写一个方法,将URL分离(即window.location.hash.split(“/”),然后从那里重新构建它,对吗?我想到了,但我的问题是,当链接触发路由器时,uri不包含旧的段。如果我访问
#上下文/工作
我将不再有
#年/xxxx/月/xx/日/xx
进行拆分和重建。