Trong ứng dụng Angularjs, tôi có một url như http://url.com/my_app/#/store/items
.
Bây giờ tôi muốn nối thêm chuỗi truy vấn chẳng hạn, http://url.com/my_app/#/store/items?page=2
.
nhưng trong url, javascript mã hóa số mà tôi không muốn. Nó sẽ vẫn còn "?" chỉ trong url như angularjs $ location.search() trả về không có gì cho "% 3F".
Làm cách nào để thực hiện?cách vượt qua "dấu chấm hỏi" trong url javascript
Trả lời
Không có đủ chi tiết trong câu hỏi của bạn vì vậy tôi sẽ cho rằng bạn đang sử dụng AngularJS định tuyến - hoặc ít nhất là $location service - trong chế độ phi HTML5. Nếu vậy, phần sau ký tự #
đại diện cho URL của bạn từ quan điểm đơn trang ứng dụng (xem thêm về AngularJS here).
Nếu các giả định trên là chính xác, có nghĩa là bạn không nên cố gắng thêm hoặc thao tác dấu chấm hỏi "bằng tay". Thay vào đó, bạn nên thay đổi phần search
của $location
để thao tác chuỗi truy vấn (một phần sau ?
) và dấu chấm hỏi sẽ được thêm/xóa vào URL cuối cùng nếu cần.
Trong trường hợp của bạn, bạn có thể viết:
$location.path('/store/items').search('page', 2)
này được giả định rằng bạn đang thao tác URL từ JavaScript, như đã nêu trong câu hỏi của bạn.
câu trả lời rất hay! hoạt động rất tốt cho tôi và nó sạch hơn rất nhiều so với những gì tôi đã làm đơn giản bởi vì tôi đã không RTFM: D –
ya tìm hiểu điều gì đó mới mỗi ngày ... Cảm ơn câu trả lời này – JT703
Chắc chắn là câu trả lời đúng. Loại sucks mặc dù nếu bạn có một URL dựng sẵn từ một nơi khác trong ứng dụng mà bây giờ bạn phải phân tích thành 3 giá trị. Ugh ... đó là cái góc. Owch! – Mark
Bạn có thể sử dụng decodeURIComponent.
Ví dụ:
decodeURIComponent('http://url.com/my_app/#/store/items%3Fpage=2');
// will give you `http://url.com/my_app/#/store/items?page=2`
tôi đã thử điều này nhưng nó không hoạt động nó chỉ cần "?" – Amb
Đừng fiddle với URL cho chính mình! Trong bối cảnh góc cạnh có những cách tốt hơn nhiều so với điều đó. Xem câu trả lời của @ pkozlowski.opensource hoặc thậm chí tốt hơn sử dụng $ state.go (để, params, tùy chọn) trong đó params là một đối tượng chứa tham số truy vấn được xác định trong trạng thái của bạn và giá trị của chúng không được mã hóa. – aaki
Nếu bạn đang sử dụng dịch vụ vị trí $ thì hãy sử dụng $location.url('/store/items?page=2')
để thay thế. Đây là một phương pháp setter từ ít nhất 1.0.7 và làm việc một điều trị trong ứng dụng 1.1.5 của tôi.
Xóa câu trả lời hay nhất nếu tất cả những gì bạn có là chuỗi url. – Vakey
Nếu bạn đang sử dụng ui-router được khuyên dùng, bạn có thể sử dụng $state.go(to, params, options)
như được mô tả here.
Như điều kiện tiên quyết bạn cần xác định trạng thái của mình đúng cách, điều đó có nghĩa là mọi tham số truy vấn có thể phải được đặt cho ui-router. Xem ví dụ sau (page
và otherParam
):
$stateProvider.
state('storeItems', {
url: '/store/items?page&otherParam',
templateUrl: '/modules/store/views/item.client.view.html'
});
Và sau đó bạn chỉ có thể chuyển địa điểm ví dụ từ một bộ điều khiển bằng cách gọi
$scope.gotoItemsPage = function(page) {
$state.go('storeItems', {
page: page,
otherParam: 'Just a show off'
});
};
Không loay hoay với bảng mã cần thiết và rất dễ đọc!
bạn có thể tạo một đối tượng tham số như:
var param = {
page: 2
}
$location.url("/store/items").search(param)
- 1. jquery xóa mọi thứ sau dấu chấm hỏi trong url
- 2. .htaccess ghi đè URL bằng dấu chấm hỏi "?"
- 3. Tomcat, JAX-RS, Jersey, @PathParam: cách vượt qua dấu chấm và dấu gạch chéo?
- 4. Toán tử dấu hỏi chấm (?)
- 5. Generics và dấu chấm hỏi
- 6. Sinatra và dấu chấm hỏi
- 7. attr_reader với dấu chấm hỏi trong tên
- 8. Cái gì \? (chuỗi dấu chấm hỏi dấu chấm hỏi) có nghĩa là chuỗi thoát?
- 9. Câu hỏi cú pháp PHP: Dấu chấm hỏi và dấu hai chấm nghĩa là gì?
- 10. Dấu chấm hỏi phù hợp trong quy tắc mod_rewrite regex
- 11. Có thể vượt qua cuộc gọi qua dấu chấm lửng qua trực tiếp không?
- 12. Khai báo biến dấu chấm hỏi
- 13. Câu hỏi Đánh dấu trong JavaScript
- 14. dấu chấm hỏi nhà điều hành trong các biểu thức
- 15. Dấu chấm hỏi và dấu hai chấm trong câu? nó có nghĩa là gì?
- 16. Dấu chấm phẩy Razor/JavaScript và dấu chấm phẩy
- 17. Dấu hỏi ở giữa biến số url?
- 18. PHP nhận được băm sau dấu chấm hỏi
- 19. dấu chấm hỏi và ruột kết - nếu khác trong ruby
- 20. ‘::’ (dấu hai chấm) làm gì trong JavaScript?
- 21. "?" biểu tượng (dấu chấm hỏi) có nghĩa là trong Scala?
- 22. Dấu chấm hỏi ở cuối css bao gồm url là gì?
- 23. Đặt văn bản nút thành dấu chấm hỏi
- 24. Ba dấu chấm trong mã javascript
- 25. MVC vượt qua id cách nhau dấu "+" để hành động
- 26. Thuật ngữ cho một phần của URL sau dấu chấm hỏi là gì?
- 27. Dấu chấm câu tải "hoạt hình", javascript?
- 28. Cách sử dụng dấu chấm/dấu chấm trong hàm R
- 29. thay thế dấu chấm bằng dấu cách
- 30. Làm thế nào để vượt qua đối số với dấu chấm than trên linux?
Kiểm tra http://www.w3schools.com/jsref/jsref_encodeuri.asp này – 999k
nên các mẫu url trông như 'http://url.com/my_app/#/store/items/page/2' thay vì 'http: //url.com/my_app/#/store/items? page = 2'. Vì nó có thể chính xác hơn để có '/' mẫu thay vì '?' Mẫu sau khi '#' – rajkamal
không, tôi chỉ muốn thêm nó vào qurystring thôi .. Yêu cầu của nó // – Amb