2016-07-08 4 views
3

Ich habe folgende Zeichenfolge tempalte:ohne neue Zeile Anfügen oder Leerzeichen

const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}/${post.get('iD')}/${post.get('slug')}`; 

Das Problem ist, dass diese Zeile zu lang ist und ich muss es brechen, sondern setzen einfach eingeben in die Mitte davon - bewirkt das Hinzufügen einer neuen Zeile und zusätzlicher Leerzeichen innerhalb der generierten Zeichenfolge.

Was ist der beste Ansatz, um eine Zeichenkettenvorlage nur für Codezwecke in einige Zeilen zu zerlegen?

+0

Zu lange, wie genau? – adeneo

+0

Wenn es zu groß ist, um es in Ihrem Code-Editor zu sehen, verwenden Sie die Wortumbruch-Funktion Ihres Editors. – ADyson

+1

Es ist genau 113 Zeichen lang plus linker Einzug. ESLint beklagt sich darüber. – hsz

Antwort

3

wenn Sie so etwas wie Backslash in Python, ich fürchte, nein, Javascript hat das nicht.

Ich würde empfehlen, + zu verwenden, um mehrere String-Segmente zu kombinieren. es ist einfacher für Sie, die besser aussehenden Einzug haben, so etwas wie:

const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}` + 
       `/${post.get('iD')}/${post.get('slug')}`; 

oder wenn Sie Knoten verwenden, können Sie auch util.format betrachten können:

const util = require('util'); 

var template = '/%s/somecategory/%s/%s/%s'; 
var args = [currentLocale, category.get('slug'), 
      post.get('iD'), post.get('slug')]; 

const someUrl = util.format(template, ...args); 
0

ein Fan von String Ich bin nicht Verkettung. Also werde ich vorschlagen, dass Sie alle Leerzeichen in dieser mehrzeiligen Vorlage entfernen.

const someUrl = ` 
    /${currentLocale}/somecategory/ 
    ${category.get('slug')}/ 
    ${post.get('iD')}/ 
    ${post.get('slug')} 
`.replace(/\s+/g, ''); 
+1

Ich bin kein Fan von diesem "Workaround". – str

1

Ich finde es ziemlich schwierig zu lesen Template-Strings, die viel Interpolation haben, wie in Ihrem Beispiel.

wäre eine andere Möglichkeit, eine Reihe von jedem Teil zu erstellen und verbinden sie Array#join mit:

const someUrl = '/' + [ 
    currentLocale, 
    'somecategory', 
    category.get('slug'), 
    post.get('iD'), 
    post.get('slug') 
].join('/');