2017-01-30 14 views
0

でURLに空白を削除しますが、原因製品名との間の空間に、それは「%20」を示している私は私のURLで、製品の名前とIDを渡しているangular2

私のURLは次のようである:

詳細/カルドン%20Black%20Rectangular%20Eyeglasses/588319df247d4b6e3397a6fa

私は私のURLをきれいにするために、これらすべての "%20" を削除するために行う必要があり、私はこのようにそれを望むもの:

詳細/ CardonBlackRectangularEyeglasses/588319df247d4b6e3397a6fa

+0

実際の名前を抽出している間に、製品名の空白をアンダースコア_に置き換え、再度アンダースコアを空白に置き換えます。これは、空のスペースを%20に置き換えるデフォルトの動作です。 –

+0

製品名を識別子として使用している限り、%20を削除することはできません。製品名は識別子ではありません。製品IDを使用する必要があります。 Angularでは、誰もが読み込み可能なURLを本当に気にしています。なぜなら、Googleはとにかにページを読み込むことができないからです。 – Gerfried

+0

あなたは値を渡すので、明らかに別のコンポーネントでそれを使いたいと思っています。ですから、サービスを使用して、元のコンポーネントの変数を設定し、目的のコンポーネントのサービスの価値を得ることができます。ただのアイデア! – Amir

答えて

2

唯一の方法はArepalliが既にコメントしたように、それらのスペースを置き換えることです。

// JS function 
function replaceAll(input, find, replace) { 
    return input.replace(new RegExp(find, 'g'), replace); 
} 

// TypeScript function 
public replaceAll(input: string, find: string, replace: string): string { 
    return input.replace(new RegExp(find, 'g'), replace); 
} 

var productName = 'Cardon Black Rectangular Eyeglasses'; 
productName = replaceAll(productName, ' ', ''); 
console.log(productName); 

しかしサーバーは、それらのURLを処理しなければなりません!

多分これらのスペースは必要ですか? :)

関連する問題