javascript – 无法读取未定义的属性“nativeElement”

我正在使用离子2.

我需要获得htmlelement值.

我实际上使用了viewchild.

这是我的html模板代码

<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值是firebase值.我访问这个元素.但我没有得到元素的价值.

这是我的组件

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

      }
    }

我把这个链接称为How can I select an element in a component template?

我尝试了很多方式.

但我得到这个错误

Cannot read property 'nativeElement' of undefined.

解决方法

我认为你想在完全渲染之前从html中获取值.如果您尝试在按钮单击中打印该值,它将起作用.

取决于你的代码我已经修改了一点.试试下面,它对我有用.

ngAfterViewInit() {
    console.log("afterinit");
    setTimeout(() => {
      console.log(this.abc.nativeElement.innerText);
    },1000);
  }

注意:如果不起作用,请增加超时时间,然后重试.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...