У меня есть эта проблема, что я не могу понять, что происходит: Я использую Angular и механизм маршрутизации.
поэтому у меня есть url:
<a href="#/videos/detail/{{video.Id}}" onclick="location.reload();">
<div class="card-image">
<img ng-src="{{video.ThumbnailUrl?video.ThumbnailUrl:'img/images.png'}}" src="" />
</div>
</a>
Как вы видите, существует onclick="location.reload();
, это работает на Chrome и IE9. Но на FF он делает следующее:
- Нажмите ссылку
- URL обновляется
- Вызывается ссылка location.reload(), вызываемая страницей.
- Представление URL и Angular, вернитесь к странице, на которую нажата ссылка.
- При нажатии "F5" фактическая страница и URL-адрес загружаются в
Я также пробовал сделать location.reload(true);
, если, возможно, маршрут был кеширован или нет, но не повезло.
В случае, если вам интересно, почему обновление и местоположение: Мне нужно обновить страницу для перезагрузки плагина (из-за ошибки в нем), и этот метод был первым, о котором я мог подумать.
EDIT: В конце концов, сделав комбинацию Angular и некоторого JQuery;
Итак, последний html выглядел так:
<a href="#" class="prevent" ng-click="redirectwithreload('# />videos/detail/'+video.Id)" >
<div class="card-image">
<img ng-src="{{video.ThumbnailUrl?video.ThumbnailUrl:'img/images.png'}}" src="" />
</div>
</a>
Директива выглядела так:
.directive('videoCard', function () {
return {
restrict: 'E',
templateUrl: 'partials/directives/video-card.html',
controller: function ($scope, $element, $location) {
$scope.redirectWithReload = function (url) {
var toUrl = location.href.split('#')[0] + url;
location.replace(toUrl);
}
},
compile: function () {
return {
post: function () {
$('a.prevent').click(function (e) {
e.preventDefault();
});
}
}
}
};
})
класс prevent
был только для моего Jquery, чтобы предотвратить дефолт
и пошел за ng-кликом, из-за того, что мне когда-либо понадобится добавить больше urars в url, теперь это очень легко сделать:)
Спасибо за помощь! особенно: @mplungjan