2012-10-09 25 views
11

Tôi làm cách nào để chuyển hướng hoặc cập nhật url? Tôi không thể tìm thấy bất kỳ tài liệu hay về việc này. Về cơ bản, những gì tôi muốn làm là thay đổi $ routeParams động và cập nhật url với giá trị mới.

Mã của tôi trông như thế này:

if ($routeParams.time) { 
     var url; 
     $routeParams.time = encodeURIComponent(value); 
     url = '/' + $routeParams.time + '/' + 'marketing/networks'; 
     $location.path(url); 
    } else { 
     $routeParams.time = encodeURIComponent(value); 
     url = '/' + $routeParams.time + $location.path(); 
     $location.path(url); 
    } 
+0

https://stackoverflow.com/questions/13636476/angularjs-best-way-to-update-route-parameter –

Trả lời

23

Sau khi đọc nhận xét cho câu trả lời của mình, tôi nghĩ có lẽ không phải là câu trả lời đúng cho trường hợp này. Xin vui lòng, trước khi sử dụng giải pháp này, đọc các ý kiến ​​và câu trả lời khác. Tôi không sử dụng Angular nữa nên tôi không cảm thấy đủ điều kiện để trả lời.

tôi rời khỏi câu trả lời ban đầu chưa sửa đổi dưới đây:

Bạn đang thay đổi vị trí đúng nhưng AngularJS nó không nhận ra rằng nó đã thay đổi. Bạn có thể giải quyết vấn đề sử dụng phương pháp '$ áp dụng' phạm vi của bạn như thế này:

$location.path(url); 
$scope.$apply(); 

Hoặc như thế này:

$scope.$apply($location.path(url)); 

Xem $ áp dụng tài liệu ở đây http://docs.angularjs.org/api/ng.$rootScope.Scope

+3

Bạn có thể gặp phải lỗi $ đang được áp dụng, nếu có, hãy xem: http: // stackoverflow. com/questions/18626039/áp dụng-đã-trong-tiến-lỗi, nó dễ dàng sửa chữa. – DrCord

+2

Bạn không bao giờ cần phải gọi $ áp dụng trừ khi bạn đang giao tiếp từ một sự kiện không phải là Góc. Khi sử dụng $ apply, hãy cân nhắc sử dụng phương pháp "áp dụng an toàn": https://coderwall.com/p/ngisma Đây KHÔNG phải là trường hợp bạn cần sử dụng! – MGot90

+0

chỉ $ location.path (url) là bắt buộc .. –

2

bạn nên sử dụng https://angular-ui.github.io/

ui-router

khi sử dụng, bạn có thể làm ...

state.go ("route-name", {id: 4});

tốt hơn nhiều so với dịch vụ định tuyến được tích hợp

Câu trả lời được bình chọn nhiều nhất là đáng lo ngại!

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