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 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...