Angular2 theo mặc định sử dụng encodeURIComponent() để mã hóa truy vấnParams trong URL, bạn có thể tránh nó bằng cách viết serializer URL tùy chỉnh và ghi đè chức năng mặc định.
Trong trường hợp của tôi, tôi muốn tránh Angular2 để tránh thay thế dấu phẩy (,) theo (% 2). Tôi đã chuyển Query như lang = en-us, en-uk, nơi nó đã được chuyển đổi thành lang = en-us% 2en-uk.
đây làm thế nào tôi đã làm việc nó ra:
CustomUrlSerializer.ts
import {UrlSerializer, UrlTree, DefaultUrlSerializer} from '@angular/router';
export class CustomUrlSerializer implements UrlSerializer {
parse(url: any): UrlTree {
let dus = new DefaultUrlSerializer();
return dus.parse(url);
}
serialize(tree: UrlTree): any {
let dus = new DefaultUrlSerializer(),
path = dus.serialize(tree);
// use your regex to replace as per your requirement.
return path.replace(/%2/g,',');
}
}
Thêm bên dưới dòng để appModule.ts chính của bạn
import {UrlSerializer} from '@angular/router';
import {CustomUrlSerializer} from './CustomUrlSerializer';
@NgModule({
providers: [{ provide: UrlSerializer, useClass: CustomUrlSerializer }]
})
này sẽ không phá vỡ mặc định của bạn chức năng và quan tâm đến URL theo nhu cầu của bạn.
Nguồn
2017-02-02 06:37:24
kiểm tra http://stackoverflow.com/questions/22944932/angularjs-resource-how-to-disable-url-entity-encoding – Deep
@Deep, liên kết của bạn dành cho góc 1, có một chút khác biệt. – Derrick