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!

questionAnswers(6)

yourAnswerToTheQuestion