2016-08-09 44 views
1

Ich versuche, den Titel von JSON Antwort mit einem click Ereignis, bekomme ich alle Titel zu bekommen, wenn ich auf die Schaltfläche klicken, aber wie bekomme ich bestimmte Titel abhängig von die button oder a href der Benutzer geklickt?angular2 get Zeichenfolge im JSON-Format auf Klick

modalGetTitle(title) { 
    this.http.get('../../xmlConf/dashboard_journey.json') 
    .map((res:Response) => res.json()) 
    .subscribe(data => { 
     if(data) { 
      var jsonObj = JSON.parse(JSON.stringify(data)); 
      this.oJourney = jsonObj.o.journey; 
      this.getJourneyTitle = this.oJourney; 

      for (var i = 0; i < this.getJourneyTitle.length; i++) { 
       var element = this.getJourneyTitle[i]; 
       console.log(element.title); 
      }  
     } 

    }); 
}; 

Wie wenn ich auf <button (click)="modalGetTitle()">Title 1</button> klicken und ich möchte die Json Antwort Titel in einem <span> machen, deshalb ist die Taste nur die Funktion auszulösen.

Atm ich bin immer nur das letzte Element aus der Antwort:

<a href="javascript:;" (click)="modalGetTitle()" class="float-shadow" *ngIf="journey.journey_url == 'javascript:;' ">{{journey.title}} </a> 

Antwort

1

Sie dies versuchen können, wenn ich verstehe Ihre Frage.

<button ng-click="modalGetTitle()"><span id="spanId">Title</span></button> 

in Regler können Sie definieren Funktion

  $scope.modalGetTitle = function(){ 
var title = document.getElementById('spanId').innerHTML 
      this.http.get('../../xmlConf/dashboard_journey.json') 
       .map((res:Response) => res.json()) 
       .subscribe(data => { 
        if(data) { 
         var jsonObj = JSON.parse(JSON.stringify(data)); 
         this.oJourney = jsonObj.o.journey; 
         this.getJourneyTitle = this.oJourney; 

         for (var i = 0; i < this.getJourneyTitle.length; i++) { 

          var element = this.getJourneyTitle[i]; 
     if(element == title){ 
          console.log(element.title); 
     } 
         }  
        } 
       }); 
      } 
+0

aber das bringt mir nur, was im hardcoded scope ist? Ich plane, den Titel in einem zu zeigen. Button dient nur zum Auslösen der Funktion. – nCore

+0

In diesem Fall können Sie in der Funktion Titel wie folgt setzen var title = document.getElementById ('spanId'). InnerHTML; –

+0

Wenn Anweisung nichts zurückgibt und ich glaube nicht, dass ich das Dokument holen muss, da kann ich wohl nur {{title}} in der Ansicht sehen. Siehe meine Antwort an Thierry. – nCore

0

Sie etwas als Parameter Ihrer Methode übergeben konnte. Zum Beispiel:

<button (click)="modalGetTitle('title1')">Title 1</button> 
+0

Leider können Sie das ein bisschen mehr erklären? Taste ist nur, um die Funktion auszulösen und ich möchte die JSON-Antwort Titel in einem nCore

+0

zeigen Sorry, aber ich bin mir nicht sicher zu verstehen, was Sie tun möchten. Wie wählen Sie den Titel aus, den Sie aus der Antwortnutzlast anzeigen möchten? –

+0

Ja Entschuldigung, klang ich verwirrend, ich habe eine Sammlung von Links (z. B. JS) mit (Klick) -Ereignis, um die Funktion auszulösen und erhalten Sie die Antwort mit dem Titel von (JS) und zeigen Sie die Antwort in Tag. – nCore

0

tun es wie folgt

<button (click)="modalGetTitle(this)">Title 1</button> 
function modalGetTitle() { 
    alert(objButton.textContent); // this will show "Title 1" 
}