AngularJS Paging z $ location.path, ale bez przeładowania ngView
Moja aplikacja na jedną stronę ładuje stronę główną i chcę wyświetlić serię pomysłów. Każdy z pomysłów jest wyświetlany w animowanym kontenerze flash, z wyświetlanymi animacjami, aby przełączać się między pomysłami.
Pomysły są ładowane przy użyciu $ http:
$scope.flash = new FlashInterface scope:$scope,location:$location
$http.get("/competition.json")
.success (data) ->
$scope.flash._init data
Aby jednak skorzystać z nawigacji po historii i UX, chcę zaktualizować pasek adresu, aby wyświetlić prawidłowy adres URL dla każdego pomysłu przy użyciu $ location:
$location.path "/i/#{idea.code}"
$scope.$apply()
Używam tutaj wywołania $, ponieważ to zdarzenie pochodzi z kontekstu AngularJS, tj. Flash. Chciałbym, aby bieżący kontroler / widok pozostał i aby widok nie został ponownie załadowany. Jest to bardzo złe, ponieważ przeładowanie widoku powoduje wyrzucenie całego obiektu flash i ponowne rozpoczęcie cyklu ładowania wstępnego.
Próbowałem nasłuchiwać $ routeChangeStart, aby zrobić preventDefault:
$scope.$on "$routeChangeStart", (ev,next,current) ->
ev.preventDefault()
$scope.$on "$routeChangeSuccess", (ev,current) ->
ev.preventDefault()
ale bez skutku. Całość byłaby hunky dory, gdybym mógł wymyślić sposób nadpisywania przeładowania widoku, gdy zmienię $ location.path.
Nadal bardzo czuję się dobrze w AngularJS, więc cieszę się z wszelkich wskazówek dotyczących struktury aplikacji, aby osiągnąć mój cel!