gpt4 book ai didi

AngularJS 分页与 $location.path 但没有 ngView 重新加载

转载 作者:行者123 更新时间:2023-12-03 06:25:32 25 4
gpt4 key购买 nike

我的单页应用程序加载一个主页,我想显示一系列想法。每个想法都显示在动画 Flash 容器中,并显示动画以在想法之间循环。

使用 $http 加载想法:

$scope.flash = new FlashInterface scope:$scope,location:$location

$http.get("/competition.json")
.success (data) ->
$scope.flash._init data

但是,为了受益于历史导航和用户体验,我希望更新地址栏以使用 $location 显示每个想法的正确 URL:

$location.path "/i/#{idea.code}"
$scope.$apply()

我在这里调用 $apply 是因为这个事件来自 AngularJS 上下文之外,即 Flash。我希望当前的 Controller / View 保持不变并且 View 不重新加载。这是非常糟糕的,因为重新加载 View 会导致整个 Flash 对象被丢弃并且预加载器周期再次开始。

我尝试监听 $routeChangeStart 来执行 PreventDefault:

$scope.$on "$routeChangeStart", (ev,next,current) ->
ev.preventDefault()
$scope.$on "$routeChangeSuccess", (ev,current) ->
ev.preventDefault()

但无济于事。如果我能找到一种在更改 $location.path 时覆盖 View 重新加载的方法,那么整个事情就会很顺利。

我对 AngularJS 仍然很有感觉,所以我很高兴能得到任何有关如何构建应用程序以实现我的目标的指示!

最佳答案

无需更新路径,只需使用页码更新查询参数即可。

将路由设置为忽略查询参数更改:

....
$routeProvider.when('/foo', {..., reloadOnSearch: false})
....

并在您的应用中将 $location 更新为:

...
$location.search('page', pageNumber);
...

关于AngularJS 分页与 $location.path 但没有 ngView 重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12422611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com