相关疑难解决方法(0)

AngularJS使用$ location.path进行分页但没有重新加载ngView

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

想法使用$ http加载:

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

$http.get("/competition.json")
  .success (data) ->
    $scope.flash._init data
Run Code Online (Sandbox Code Playgroud)

但是,要从历史导航和UX中受益,我希望更新地址栏以使用$ location显示每个想法的正确URL:

$location.path "/i/#{idea.code}"
$scope.$apply()
Run Code Online (Sandbox Code Playgroud)

我在这里调用$ apply,因为这个事件来自AngularJS上下文,即Flash.我希望保留当前的控制器/视图,并使视图不重新加载.这非常糟糕,因为重新加载视图会导致整个flash对象被抛弃并且预加载器循环再次开始.

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

$scope.$on "$routeChangeStart", (ev,next,current) ->
  ev.preventDefault()
$scope.$on "$routeChangeSuccess", (ev,current) ->
  ev.preventDefault()
Run Code Online (Sandbox Code Playgroud)

但无济于事.如果我在改变$ location.path时想出一种覆盖视图重载的方法,那么整个事情就会变得很糟糕.

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

angularjs

38
推荐指数
2
解决办法
5万
查看次数

标签 统计

angularjs ×1