2015-04-02 3 views
0

У меня возникла странная проблема с location.path(), так как я не перенаправляюсь на страницу, которую я хочу. У меня есть ссылка в моем HTML файл следующим образом:

<a title="{{woa.name}}" href="#/" ng-right-click="" href="javascript:void(0)" ng-click="goToDetailPage(woa.pk,'workofart')"> 

Соответствующий контроллер имеет следующий код:

appTreasure.controller("mySecondController", function($scope, $http, $location) { 
    $scope.goToDetailPage = function(pk, selectedDetailsPage) { 
     newLocation = selectedDetailsPage + '/' + pk; 
     console.log("NEW: " + newLocation); 
     $location.path(newLocation); 
    } 
    // some more unrelated code 

Текущий URL является: <base>/#/beinspiredby и печатное newLocation является чем-то вроде <base>/#/workofart/someexistingpk. Итак, я создаю новое местоположение с допустимыми значениями.

К сожалению, когда я нажимаю на ссылку, я перенаправляюсь на <base>/#/. Если я вручную перейду к <base>/#/workofart/someexistingpk, я правильно приземлюсь на страницу, которую я ищу.

Кроме того, в третьем контроллере у меня есть точно такой же код для goToDetailPage, и он работает.

Где я что-то пропущу?

+0

Дублирование? http://stackoverflow.com/questions/19359553/angular-location-path-not-working – Christian

+0

Я не работаю за пределами Angular и не добавляю слушателя событий. Почему это должно быть дубликат? – Manu

ответ

1

Я думаю, это потому, что у вас есть атрибут href в вашем якорь-элементе (на самом деле у вас есть два).

Попробуйте

<a title="{{woa.name}}" ng-right-click="" ng-click="goToDetailPage(woa.pk,'workofart')"> 
+0

Спасибо. На самом деле достаточно отбросить href = "# /", что было старым. – Manu

Смежные вопросы