我的單頁應用程序加載主頁,我想顯示一系列想法。每個想法都顯示在動畫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