項目中遇到一個問題,就是在ngInit()中調(diào)用方法,只調(diào)用一次的問題,當父組件傳值變化時,并不會再次執(zhí)行。
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core'; import { NavController } from 'ionic-angular'; @Component({ selector: 'cs-img-lazy', templateUrl: 'cs-img-lazy.html' }) export class CsImgLazyComponent implements OnChanges { @Input() default: string; @Input() src: string constructor(public navCtrl: NavController) { } ngOnInit() { } ngOnChanges(changes: SimpleChanges) { console.log('ngOnChanges', this.src); this.loadImage(this.src, () => { this.default = this.src; }); } loadImage(url, callback) { var img = new Image(); img.onload = () => { if (img.complete) { img.onload = null callback(img); return; } } img.src = url; } }