I am using ionic 2.
I need to get HTML element value.
Actually, I used viewchild.
Here is my html template code
<div class="messagesholder" *ngFor="let chat of chatval | orderby:'[date]'; let last = last"> {{last ? callFunction() : ''}} <div *ngIf="chat.sender == currentuser || chat.receiver == currentuser"> <p class="chat-date" id="abc" #abc>{{chat.date | amDateFormat:'LL'}}</p> {{checkdate()}} </div>
chat.date value is firebase value. I access this element. But I didn't get the value of the element.
Here is my component
import {Component, ElementRef,ViewChild, OnInit} from '@angular/core'; export class ChatPage { @ViewChild(Content) content: Content; @ViewChild('abc')abc: ElementRef; constructor(){} ngAfterViewInit(){ console.log("afterinit"); console.log(this.abc.nativeElement.value); } }
I referred this link How can I select an element in a component template?
I tried in many ways.
But I am getting this error
Cannot read property 'nativeElement' of undefined.
I think you are tring to get the value from html before rendering completely. If you try to print the value in a button click, it will works.
depend on your code I have modified a little.Try the below, it is working for me.
ngAfterViewInit() { console.log("afterinit"); setTimeout(() => { console.log(this.abc.nativeElement.innerText); }, 1000); }
Note: If not working, please increase the timeout time and try again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With