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

前端之家收集整理的这篇文章主要介绍了AngularJS分页与$location.path但没有ngView重新加载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的单页应用程序加载主页,我想显示一系列的想法。每个想法都显示在一个动画flash容器中,动画显示在想法之间循环。

想法使用$ http:

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

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

然而,要受益于历史导航和UX我希望更新地址栏,以显示每个想法的正确的URL使用$位置:

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

我在这里调用$ apply,因为这个事件来自于AngularJS上下文,即Flash。我想要的当前控制器/视图保持和视图不重新加载。这是非常糟糕的,因为重新加载视图导致整个闪存对象被抛弃,预加载器循环再次开始。

我试过监听$ routeChangeStart做一个preventDefault:

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

但无济于事。如果我能找出一个方法覆盖视图reload当我改变$ location.path的整个事情将是愚蠢的dory。

我仍然非常感觉我的方式AngularJS,所以我很高兴任何指针如何结构的应用程序,以实现我的目标!

而不是更新路径,只是更新查询参数与页码

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

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

并在您的应用程式更新$位置与:

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

猜你在找的Angularjs相关文章