【问题标题】:Angular: change URL for the same controllerAngular:更改同一控制器的 URL
【发布时间】:2013-06-30 10:50:46
【问题描述】:
$routeProvider.
    when('/:placeId', {templateUrl: 'client/partials/menu.html', controller: MenuCtrl}).
    when('/look/refill', {templateUrl: 'client/partials/refill.html', controller: RefillCtrl}).
    when('/look/orderCart', {templateUrl: 'client/partials/orderCart.html', controller: OrderCartCtrl}).
    otherwise({redirectTo: '/0'});
}]).

我需要在第一页添加链接,当您单击它时,应更改 URL(例如,在 URL 的和中添加 1)但页面应保持不变,无需任何更改和重新加载。怎么做?谢谢

【问题讨论】:

  • 如果您希望更改路径但不加载新页面或某些新内容,那么您做错了 URL...
  • 为什么需要这样的功能?当然有更好的方法来做任何你想做的事情......
  • 因为我需要点击“返回”按钮时我需要返回同一页面,但要获取页面的先前状态。
  • 我该怎么做?

标签: javascript url angularjs


【解决方案1】:

认为这就是你想要的

when('/:placeId', {templateUrl: 'client/partials/menu.html', controller: MenuCtrl, reloadOnSearch: false})

【讨论】:

  • 谢谢,但这不会改变 URL,我的意思是使用这种方法我可以再次链接到 rhis 页面...但是 URL 将保持不变:(
  • 你有 $locationProvider.html5Mode(true) 吗?
  • 我如何使用它无法从角度理解文档 - 你能帮我吗?
  • 在你的路由声明后面加上 $locationProvider.html5Mode(true) ,然后让服务器发回相应的模板。在您的情况下,服务器应该有 api 用于在请求“/:placeId”时返回 client/partials/menu.html。
  • 在这种模式下,它会将我的 url 从 localhost/OscarWilde/confCart/#/0 重写为 localhost/OscarWilde/confCart/#%2F0 并且什么都不显示 Oo
猜你喜欢
  • 2017-01-14
  • 2012-11-09
  • 1970-01-01
  • 2019-02-02
  • 2016-07-12
  • 1970-01-01
  • 2023-03-11
  • 2014-11-28
  • 2016-03-17
相关资源
最近更新 更多