2017-01-30 9 views
0

I Name und ID des Produkts in meiner URL bin vorbei, aber aufgrund Raum zwischen dem Produktnamen wird "% 20"entfernen Leerzeichen in URL in angular2

meine URL zeigt ist wie folgt:

Detail/Cardon% 20black% 20Rectangular% 20Eyeglasses/588319df247d4b6e3397a6fa

was soll ich tun alles zu entfernen, diese "% 20" auf meine URL sauber ich möchte es so machen:

Detail/CardonBlackRectangularEyeglasses/588319df247d4b6e3397a6fa

+0

Ersetzen Sie Ihren Produktnamen leere Leerzeichen mit Unterstrich _, während Sie tatsächlichen Namen extrahieren, ersetzen Sie wieder Unterstrich mit leeren .. Das ist das Standardverhalten des Browsers, um Ihre leeren mit% 20 zu ersetzen. –

+0

Sie können% 20 nicht entfernen, solange Sie den Produktnamen als Bezeichner verwenden. Produktnamen sind KEINE Identifikatoren. Sie sollten die Produkt-ID verwenden. In Angular kümmert sich niemand um lesbare URLs, da Google die Seiten sowieso nicht laden kann. – Gerfried

+0

Während Sie den Wert übergeben, möchten Sie ihn offensichtlich in einer anderen Komponente verwenden. Sie können den Service also verwenden, um die Variable in Ihrer Ursprungskomponente festzulegen und den Wert des Dienstes für Ihre Zielkomponente abzurufen. Nur eine Idee !! – Amir

Antwort

2

nur Weg wäre, diese Räume zu ersetzen, wie Arepalli bereits kommentiert.

// 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); 

ABER Ihr Server hat diese URLs zu handhaben!

Also vielleicht diese Räume benötigt werden? :)

Verwandte Themen