URL-адрес маршрутизации становится пустой строкой

0

Я использую angularjs v1.4.8. В этом я столкнулся с проблемой привязки URL. Я использую загрузчик файлов, программно вызванный событием клика изображения. При этом URL-адрес удаляется из браузера. Это результат, который я вижу в своем приложении.

Перед кликом: http://localhost: 49573/req/request.html #/req/upload

После нажатия: http://localhost: 49573/req/request.html #

HTML-код

<img src="images/upload.png" title="Upload" ng-click="triggerupload()">

Функция внутри контроллера

       $scope.triggerupload = function () {            //ls_val
            alert($location.path());  
        };

Это возвращает /req/upload

App.run

    $rootScope.$on('$locationChangeStart', function (event, next, current) {
            console.log($location.path());
    });

Это возвращает пустую строку

  • 0
    Вы используете ngRouter или uiRouter (с $state )? Потому что вы добавляете тег ui-router, но, похоже, не используете его.
  • 0
    В качестве примечания при регистрации местоположения из часов $locationChangeStart лучше использовать .oldUrl и .newUrl события $locationChangeStart .
Теги:
angular-ui-router

1 ответ

0

Ваше событие click скорее всего распространяется на внешнюю область, которая продолжает изменять местоположение и, таким образом, испускает $locationChangeStart.

Вы должны попытаться остановить распространение события из функции triggerupload:

$scope.triggerupload = function (event) {
    //do the upload
    event.stopPropagation();
};

Или непосредственно в директиве ng-click:

<img ng-click="triggerupload(); $event.stopPropagation();" src="images/upload.png" title="Upload">
  • 0
    Этот stopPropagation () не работает для меня. Это все еще работает как то же самое. Как вы говорите, событие распространяется на внешнюю сферу. Я использую только простое предупреждение в этом.
  • 0
    Когда вы щелкаете изображение, генерируется событие щелчка. Сначала он будет перехвачен щелчком ng-изображения вашего изображения, но если вы не остановите его распространение, оно попадет в контейнер вашего изображения и до $ rootcope

Ещё вопросы

Сообщество Overcoder
Наверх
Меню