Я использую 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());
});
Это возвращает пустую строку
Ваше событие 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">
$state
)? Потому что вы добавляете тег ui-router, но, похоже, не используете его.$locationChangeStart
лучше использовать.oldUrl
и.newUrl
события$locationChangeStart
.