2013-09-23 40 views
9

Tôi có ngView với ba chế độ xem ngIncluded: bộ lọc tìm kiếm, sản phẩm, phân trang. Tôi muốn:Nút quay lại khi reloadOnSearch: false

  1. sản phẩm lọc không tải lại toàn bộ trang chỉ là sản phẩm xem
  2. thêm bộ lọc để url ví dụ. ?category=shoes
  3. có thể sử dụng nút back và next

tôi đặt reloadOnSearch: false trong $routeProvier.when. Bây giờ, khi tôi gọi các thay đổi url chức năng $location.search(), nhưng trang không được tải lại. Đó là những gì tôi muốn đạt được, nhưng khi tôi nhấn nút quay lại các sản phẩm không tải lại trạng thái trước đó của nó. Điều duy nhất xảy ra là thay đổi url. Câu hỏi đặt ra là làm thế nào tôi có thể xử lý các sự kiện nút quay lại và tiếp theo trong tình huống này?

Trả lời

11

Nếu bạn tải lạiTìm kiếm: sai, cùng một thể hiện của bộ điều khiển được sử dụng và bất kỳ trở về trước sẽ không tải lại bất kỳ bộ điều khiển hoặc chế độ xem liên quan nào. Bạn cần trả lời sự kiện $routeUpdate được nêu trong các trường hợp như vậy. Xem $ route documentation về việc này.

$scope.$on('$routeUpdate',function(e) { 
    // Code to handle the route change. 
}); 
0

Bạn phải xử lý mọi thứ theo cách thủ công. Điều đó có nghĩa là khi bạn nhấn nút quay lại hoặc nút tiếp theo, bạn phải quay lại trạng thái bạn sử dụng vị trí $.