我的单页应用程序加载主页,我想显示一系列的想法。每个想法都显示在一个动画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,所以我很高兴任何指针如何结构的应用程序,以实现我的目标!