2016-08-09 10 views
1

clickイベントを使用してjsonレスポンスからタイトルを取得しようとしていますが、ボタンをクリックするとすべてのタイトルを取得できますが、どうすれば特定のタイトルを取得できますかbuttonまたはa hrefユーザーがクリックしましたか? 同様angular2クリックでjson形式の文字列を取得

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

    }); 
}; 

私は<button (click)="modalGetTitle()">Title 1</button>をクリックすると、私は<span>でJSONレスポンスのタイトルをレンダリングしたい場合は、そのためのボタンだけの機能をトリガすることです。

気圧私は唯一の応答から最後の項目を取得しています:

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

答えて

1

のようにそれを行います。コントローラで

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

あなたが機能を定義することができます

  $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

しかし、それはハードコードされたスコープにあるものだけを私に渡すでしょうか?タイトルはに表示する予定です。ボタンは関数をトリガするだけです。この場合、 – nCore

+0

のように機能を設定することができます。 var title = document.getElementById( 'spanId')。innerHTML; –

+0

ステートメントが何も返さず、私がドキュメントを取得する必要があるとは思わない場合は、おそらく{{title}}をビューに入れるだけです。ティエリーへの私の返事を見てください。 – nCore

0

あなたのメソッドのパラメータとして何かを渡すことができます。例えば:私はあなたの質問を理解していれば

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

申し訳ありませんが、あなたはこのもう少し説明することができますか?ボタンは関数をトリガーするだけで、 nCore

+0

にjsonのレスポンスのタイトルを表示したいのですが、あなたがしたいことを理解していません。応答ペイロードから表示するタイトルを選択しますか? –

+0

申し訳ありません。わかりやすく聞こえましたが、(click)イベントを含むリンク集(例:JS)を使用して、機能を起動し、タイトル(JS)のレスポンスを取得し、タグで応答を表示します。 – nCore

0

は、あなたがこれを試すことができ、この

<button (click)="modalGetTitle(this)">Title 1</button> 
function modalGetTitle() { 
    alert(objButton.textContent); // this will show "Title 1" 
} 
関連する問題