这有效:
ionViewDidLoad() {
var that = this;
setTimeout(function () {
that.img = that.el.nativeElement.querySelector('.user-image');
alert(that.img.src);
}, 300);
}
这不是
ionViewDidLoad() {
var that = this;
that.img = that.el.nativeElement.querySelector('.user-image');
alert(that.img.src);
}
我确信这不是正确的行为。而且我真的不想设定时间来获得这个。那么为什么会这样呢?如何解决?
在我的html文件中:
<img class="user-image img-responsive full-width " *ngIf="user.pictureURL" src="myurl.com{{user.pictureURL}}" />
答案 0 :(得分:2)
这是因为调用后可能会加载html模板。 您需要使用ViewChild来获取ElementRef
<img #imageId class="user-image img-responsive full-width " *ngIf="user.pictureURL" src="myurl.com{{user.pictureURL}}" /><!--set id with # -->
在组件中:
import {ViewChild, ElementRef} from '@angular/core';
//...In class,
@ViewChild('imageId') imageElement:ElementRef;
ionViewDidLoad() {
alert(this.imageElement.nativeElement.src);
}