我的单页应用程序加载主页,我想显示一系列想法。每个想法都显示在动画Flash容器中,动画显示为在想法之间循环。
想法是使用加载的$ HTTP:
$scope.flash = new FlashInterface scope:$scope,location:$location
$http.get("/competition.json")
.success (data) ->
$scope.flash._init data
但是,从历史的导航和UX受益我希望更新的地址栏使用$位置来显示每个想法正确的网址:
我打电话给$在这里适用,因为这个事件来自AngularJS上下文,即Flash。我希望当前的控制器/视图保持不变,并且视图不能重新加载。这非常糟糕,因为重新加载视图会导致整个Flash对象被丢弃,并且preloader循环再次开始。
我试着聆听$ routeChangeStart做的preventDefault:
$scope.$on "$routeChangeStart", (ev,next,current) ->
ev.preventDefault()
$scope.$on "$routeChangeSuccess", (ev,current) ->
ev.preventDefault()
,但无济于事。如果我可以在更改$ location.path的时候找出覆盖视图重新加载的方式,那么整个事情就会是hunky dory。
我仍然非常感觉我的AngularJS的方式,所以我会很高兴有关如何构建应用程序来实现我的目标的任何指针!
我迟到了,但我刚刚遇到类似的问题。是否有理由不能将'ideas'放在'ng-view'指令之外,并给它们自己的控制器,它通过作用域继承与'ng-view'内的控制器交互?我主要是问,因为这是我如何解决自己的问题,并想知道它是否有任何缺点,或者如果我切换到接受的答案。 – jclancy
如果我今天再次解决这个问题,我会非常想用ui-路由器的分层视图功能。我不确定这会解决我在这里遇到的特定URL问题,但需要更多研究一段时间......! – chrisbateskeegan
好的,谢谢你指出我在那个方向,并感谢回应这样一个迟到的评论! – jclancy