2014-07-05 16 views
8

Tôi đang cố gắng sử dụng AngularJS $anchorScroll với $location.hash. Tuy nhiên, khi tôi đặt băm, AngularJS thêm một dấu gạch chéo,/sau nó. Ví dụ: url là: http://localhost:13060/Dashboard. Khi tôi không bao gồm thư viện AngularJS, tôi có thể nhấp vào liên kết, #contact và truy cập http://localhost:13060/Dashboard#contact.AngularJS đang đặt dấu gạch chéo/sau thẻ băm

Nhưng khi tôi bao gồm AngularJS và nhấp vào liên kết, nó đi đến http://localhost:13060/Dashboard#/contact ngăn $ anchorScroll hoạt động.

Sửa $ anchorScroll không làm việc

URL khởi đầu là http://localhost:13060/Category. Khi tôi thêm danh mục, nó sẽ chuyển đến http://localhost:13060/Category#/#id (trong đó id là id mới) và cuộn xuống trang đó. URL đang cập nhật chính xác nhưng $ anchorScroll không cuộn.

//jump to new category 
$location.path(""); 
$location.hash(cat.ID); 
$anchorScroll(); 

Trả lời

5

Trừ khi bạn sử dụng html5mode, loại bỏ băm từ định tuyến góc, bạn sẽ có 2 băm, một cho định tuyến góc và khác cho neo.

http://localhost:13060/Dashboard#/#contact

Giả sử bạn đã một con đường tuyến đường thiết lập như /profiles và neo là theo quan điểm rằng url sẽ trông như thế:

http://localhost:13060/Dashboard#/profiles#contact

+0

Tôi có URL định dạng đúng bây giờ, nhưng $ anchorScroll () không cuộn xuống trang. –

+0

Tôi sẽ thành thật, tôi chưa bao giờ sử dụng anchorscroll. Liệu '$ location.hash()' có xuất ra những gì bạn mong đợi (băm thứ hai) không? – charlietfl

+0

Có, nó cập nhật băm đúng (khi tôi chỉ định đường dẫn), nhưng sau đó không có gì xảy ra ngoài thanh trình duyệt URL phản ánh thay đổi. –

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