angularjs -обновляется при нажатии на ссылку с фактическим URL-адресом

Я использую routeProvider для определения контроллеров и шаблонов для своих URL-адресов.

Когда я нажимаю на ссылку, которая имеет тот же URL-адрес, что и фактическое местоположение, ничего не происходит. Я хотел бы, чтобы метод reload()вызывался, если пользователь нажимает на такую ​​ссылку, даже если местоположение не изменилось. Другими словами,если я установлю для местоположения одно и то же значение, я бы хотел, чтобы оно вело себя так же, как если бы я установил для него другое значение.

Есть ли способ настроить routeProvider или locationProvider для автоматического выполнения? Или каков правильный подход к этому? Это стандартное поведение в приложениях туда и обратно, но как это сделать в angularjs?

Я также спрашивал об этом в группах google .

ОБНОВЛЕНИЕ:

Этот вопрос получает много просмотров, поэтому я попытаюсь объяснить, как я решил свою проблему.

Я создал пользовательскую директиву для ссылки в своем приложении, как предложил Ренан Томал Фернандес в комментариях.

angular.module('core.directives').directive('diHref', ['$location', '$route',
        function($location, $route) {
    return function(scope, element, attrs) {
        scope.$watch('diHref', function() {
            if(attrs.diHref) {
                element.attr('href', attrs.diHref);
                element.bind('click', function(event) {
                    scope.$apply(function(){
                        if($location.path() == attrs.diHref) $route.reload();
                    });
                });
            }
        });
    }
}]);

Затем эта директива используется для всех ссылок в моем приложении. Я хочу иметь эту функциональность.

<a di-href="/home/">Home</a>

Что делает эта директива, так это то, что она устанавливает для вас атрибут hrefна основе атрибута di-href, поэтому angular может обрабатывать его, как всегда, и вы можете видеть URL-адрес при наведении курсора на ссылку. Кроме того, когда пользователь нажимает на него, и путь ссылки совпадает с текущим путем, он перезагружает маршрут.

48
задан davekr 17 August 2013 в 01:23
поделиться