2013-07-24 6 views
6

Я сбит с толком следующим: У меня есть простая ссылка, как это:AngularJS вид не меняется при переходе на ссылку

<li><a href="#/foo">Foos</a></li> 

, но при нажатии на нее, взгляд не обновляется. URL-адрес в браузере изменяется, но ничего не происходит, и ничего не отображается в консоли. Если я загружу URL-адрес непосредственно в браузере, загрузится правильная страница.

Маршруты выглядеть следующим образом:

app.config(function($routeProvider, RestangularProvider) { 
    $routeProvider 
     .when('/index', {templateUrl: 'assets/views/index.html'}) 
     .when('/foos', {templateUrl: 'assets/views/list.html', controller: controllers.FooListCtrl}) 
     .when('/foos/create', {templateUrl: 'assets/views/update.html', controller: controllers.FooUpdateCtrl}) 
     .when('/foos/:id/update', {templateUrl: 'assets/views/update.html', controller: controllers.FooUpdateCtrl}) 
     .otherwise({redirectTo: '/index'}); 

    RestangularProvider.setBaseUrl("/admin"); 
}); 
+0

Вы пытались ng-href вместо href? – user700284

+0

Да, но без успеха –

+0

Если у вас есть шанс показать еще какой-нибудь код или даже настроить plunkr, где проблема может быть воспроизведена? – user700284

ответ

4

Хорошо, таким образом, по-видимому, это known issue of sorts: когда locationProvider (т.е. $location) впрыскивается к одному контроллеру, ссылки перестают работать по всему миру. Одним из способов является переписывание ссылок через jQuery, и это работает:

app.run(function($rootScope) { 
    $('[ng-app]').on('click', 'a', function() { 
     window.location.href = $(this).attr('href'); 
    }); 
}); 
+0

Работал для меня. Благодарю вас. –