2017-12-11 7 views
-1

角度を使用してIDを取得するにはどうすればよいですか?私はプラグインを使用しているので、角度のようなバインド(クリック)イベントができないので、直接の方法でイベントを呼び出すことはできません。だから私はこのイベントを発生させるために回避する必要がありますが、私はidを取得できないように見えます。角度のHTML ID値にアクセスする

ngAfterViewInit() { 

    let _self = this; 
    this.datatable.on('m-datatable--on-layout-updated', (event) =>{ 
     $(_self.elRef.nativeElement).find('.deleteFn').click(() => { 
      var agencyId = $(this).attr("id");//jquery method 
      console.log(agencyId); 
      this.router.navigate(['agency/setup']); 
     }); 
    }); 
} 
+0

もっとコードを投稿できますか?また、HTML要素のIDを取得しようとしていますか? –

+0

'var agencyId = $(_ self.elRef.nativeElement).find( '。deleteFn')。attr( 'id')' – Jai

+0

@Jai、$(_ self.elRef.nativeElement).find( '。deleteFn')。 attr( 'id')は動作しますが、最初のボタンのIDだけを取得します。それは私がクリックしたIDを取得しません。 datatableには多くの行があるので、各行にはボタンがあります。ソーリーがそれに対処するのを忘れた – FlyingTurtle

答えて

-1

は、あなたの答えのためのみんなに感謝し、最後に、私は答えを見つけたが、私は方法ビットを変更します。

ngAfterViewInit() { 
    $(document).on('click', '.deleteFn', ($event) => { 
     var id = $event.target.id 
     console.log(agencyId); 
     this.router.navigate(['agency/setup']); 
    }); 
} 
0

使用ViewChildとelementRef:

import { Component, ViewChild } from '@angular/core'; 



@ViewChild('controlName') control: any; 


<input #controlName id="id_1"> 


ngAfterViewInit() { 
    let _self = this; 
    this.datatable.on('m-datatable--on-layout-updated', (event) =>{ 
     $(_self.elRef.nativeElement).find('.deleteFn').click(() => { 
      var agencyId = this.control.nativeElement.id; 
      console.log(agencyId); 
      this.router.navigate(['agency/setup']); 
     }); 
    }); 
} 
+1

そのボタンがjqueryによって動的に生成されるとどうなりますか? – Jai

+0

ここであなたは読書ボタンが動的に生成されていますか? –

+1

このコードで使用されているプラ​​グイン 'datatable'では、ボタンが動的に生成されているように見えました。 – Jai

関連する問題