2017-06-19 1 views
-1

Angenommen, ich habe eine Route, die http://www.stackoverflow.com/questions/askGibt es eine Möglichkeit, eine bestimmte Zeichenfolge aus einer Route in TypeScript abzurufen?

ist

Gibt es eine Möglichkeit, die ich durch den Link lesen kann und überprüfen, ob das Wort "Ask" dort ist?

So

If(link.contains["ask"]) { 
    containsAsk = true; 
} 

Um es klar, ich versuche, den Link aus dem Browser zu ziehen, und habe es nicht in meinem Code definiert.

+0

Mögliche Duplikat [Wie zu prüfen, ob Ein String enthält einen Teilstring in JavaScript?] (https://stackoverflow.com/questions/1789945/how-to-check-whether-a-string-contains-a-substring-in-javascript) –

+0

Ich möchte die Link vom Browser, nicht eine Zeichenfolge, die ich im Code – CodyCS

+0

definiert haben, könnten Sie den Router abfragen, um die aktuelle Route wh Ich werde eine Zeichenfolge zurückgeben und dann nach einer Unterzeichenfolge prüfen. –

Antwort

1

In angular2/4 können Sie eine Instanz von ActivatedRoute in eine Komponente injizieren, diese in eine Zeichenfolge mit toString() umwandeln und deren Wert überprüfen. Zum Beispiel

@Component() 
export class TestComponent{ 
    constructor(private _route: ActivatedRoute){ 
    let link = _route.toString(); 
    console.log(link.contains('ask')); 
    } 
} 

Beachten Sie, dass diese Methode eine Zeichenfolge mit dem Formular zurück Route(url:'${url}', path:'${matched}')

Wenn Sie die singulären Elemente zu durchqueren wollen, dass diese Verbindung zusammensetzen, können Sie an die Wurzel Ebene hoch mit dem übergeordneten Attribute die Instanz.

Mehr Informationen in the following link

Eine andere Möglichkeit wäre, direkt auf den Router in das Bauteil zu injizieren, was werden Sie direkt erlauben, die aktuelle URL zu erhalten:

@Component() 
    export class TestComponent{ 
     constructor(private _router: Router){ 
     let link = _router.url(); 
     console.log(link.contains('ask')); 
     } 
    } 
Verwandte Themen