2015-09-17 18 views
19

Tôi đã nhìn thấy những cuộc gọi:

$location.url('/path/to/something/' + id + '/index'); 

$location.path('/path/to/something/' + id + '/index'); 

Có vẻ như họ đang làm điều tương tự .
Từ tài liệu tôi đã tìm thấy URL đó, ví dụ: /path?a=b#hash và đường dẫn là một phần của URL.

Có sự khác biệt nào trong số này là setters để sử dụng ($location.path hoặc $location.url) trong trường hợp đối số giống nhau không?

+0

không nếu bạn không sử dụng chuỗi tìm kiếm. Chúng không được bao gồm trong 'đường dẫn ' – charlietfl

Trả lời

36

$location.path trả về một phần của URL sau dấu gạch chéo KHÔNG bao gồm các thông số chuỗi tìm kiếm (sau dấu chấm hỏi)

$location.url trả toàn bộ URL sau dấu gạch chéo, bao gồm các thông số chuỗi tìm kiếm.

Ví dụ, giả sử bạn có URL này

http://example.com/#/some/path?foo=bar&baz=xoxo

$location.url lợi nhuận /some/path?foo=bar&baz=xoxo

$location.path lợi nhuận /some/path

Hai chức năng hoạt động như cả settersgetters.

Url về cơ bản là Path + search strings. Trong trường hợp của bạn, không có tham số tìm kiếm, vì vậy cả hai tham số đều sẽ trả về cùng một thứ.

+0

Cảm ơn bạn! Xin lưu ý rằng tôi hỏi về những người định cư. – naXa

+1

Vì bạn đang sử dụng cùng một trình cài đặt không có tham số tìm kiếm, không có sự khác biệt. –

2

$location.path() cho phép bạn trích xuất một phần cụ thể tùy thuộc vào chuỗi tìm kiếm của bạn sau dấu gạch chéo và loại trừ các thông số tôi đoán. Và nếu bạn không có chuỗi tìm kiếm thì nó hoạt động theo cách tương tự như phương thức $location.url().

+0

Cảm ơn bạn! Xin lưu ý rằng tôi hỏi về những người định cư. – naXa

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