angular - 如何从页面将数据传递给离子自定义子组件
问题描述
我正在尝试将页面中的变量传递给我的自定义子组件并记录为“未定义”。我想要子组件中的这个值,以便我可以调用另一个服务加载子组件。请帮忙。
child.component.ts
import { Component, Input , OnInit} from '@angular/core';
import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
@Component({
selector: 'well-subsurface',
templateUrl: 'well-subsurface.html'
})
export class WellSubsurfaceComponent {
@Input() data;
wID: string;
constructor(
public navParams: NavParams) {
}
async ngOnInit() {
this.wID = this.data;
console.log("------ "+ this.wID)
}
}
父组件.ts
import { Component, ViewChild } from '@angular/core';
import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
@IonicPage()
@Component({
selector: 'page-asset',
templateUrl: 'asset.html',
})
export class AssetPage {
public wID: any;
constructor(public navCtrl: NavController,
public navParams: NavParams,
public alertCtrl: AlertController
) {
}
MenuContorl(assetID) {
this.wID = wID;
}
}
父.html
<well-subsurface></well-subsurface>
解决方案
假设您正确输入了类似的数据<well-subsurface [data]="wID"></well-subsurface>
,那么您不应该使用ngOnInit
而是使用ngAfterContentInit
.
正如这个角度生命周期钩子文档所说,ngOnInit
不保证输入数据已准备好通过@Input
,而ngAfterContentInit
确实如此。
推荐阅读
- python - 不确定一些 Python 生成器语法
- python - 如何在 xlsxwriter.conditional_format 中为大句子着色?
- javascript - 反应表排序
- javascript - 如何在 jinja 循环中使用 javascript var
- ios - 在 xcode 12.5 模拟器 iphone 11 ios 14.5 objc[38321] 中构建应用程序时遇到此问题:CSAudioFileManager 类在两者中都实现
- amazon-web-services - Cloudwatch Insights 查询仅返回第一个和最后一个结果
- javascript - 在多个 foreach 方法中编写多个 switch 案例的更好方法?
- django - 无法在 django 项目的 digitalocean 应用程序中安装 python3-gdal
- firebase - 如何在 Firebase 中索引查询?
- postgresql - 无法使用 AWS CDK 预置 postgres12 数据库集群