Как изменить маршрут внутри функции "autocomplete.addListener()"? AngularJs Google Maps API

Я хочу при выборе одного предложения изменить маршрут на '/blood_test' но этого не происходит, только правильно получая console.log

но на сдаче $location.path('/blood_test'); вне функции маршрут меняется

 $location.path('/blood_test');
autocomplete.addListener('place_changed', function() {
          console.log('yoyoyoyo');
          $location.path('/blood_test');
       });

 autocomplete.addListener('place_changed', function() {
          console.log('yoyoyoyo');
          $location.path('/blood_test');
       });

Я ожидаю изменения маршрута на "/blood_test", но он останется на том же маршруте.

1 ответ

Решение

place_changed событие происходит за пределами углового контекста, вы должны заменить

$location.path(url);

с

$scope.$apply(function() {
    $location.path(url);
});

Вот демо

Другие вопросы по тегам