2013-07-24 28 views
6

Tôi đang bối rối bởi những điều sau đây: Tôi có một liên kết đơn giản như thế này:AngularJS xem không thay đổi khi điều hướng liên kết

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

nhưng khi nhấp vào nó, quan điểm không được cập nhật. URL trong trình duyệt thay đổi, nhưng không có gì xảy ra và không có gì được hiển thị trong bảng điều khiển. Nếu tôi tải URL trực tiếp trong trình duyệt thì trang chính xác sẽ được tải.

Các tuyến đường trông như thế này:

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

bạn đã thử ng-href thay vì href? – user700284

+0

Có, nhưng không thành công –

+0

Bất kỳ cơ hội nào bạn có thể hiển thị thêm một số mã của bạn hoặc thậm chí thiết lập một plunkr nơi vấn đề có thể được sao chép? – user700284

Trả lời

4

Ok, như vậy rõ ràng, đây là một known issue of sorts: khi locationProvider (ví dụ: $location) được tiêm với một bộ điều khiển, các liên kết không còn hoạt động trên toàn cầu. Một cách giải quyết có vẻ là viết lại các liên kết thông qua jQuery và hoạt động:

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

Làm việc cho tôi. Cảm ơn bạn Sr. –

Các vấn đề liên quan