完成api呼叫后。在我的数据库中,我有一组json对象值。结构如下所示:
{
"status": 1,
"message": "List Successfully fetched",
"CatgeoryList": [
{
"CatID": "10"
},
{
"CatID": "30"
},
{
"CatID": "0"
}]
}
我做过api电话。我得到status == 1
。我可以打印CatgeoryList
下的所有对象值。但我想要打印所有catID
UNDER IN CatgeoryList
。我无法得到。
这里是我的代码:
this.authService.categ(this.loginData).then((result) => {
this.loading.dismiss();
this.data = result;
if(this.data.status == 1)
{
this.Catdata = this.data.CatgeoryList;
console.log(this.Catdata); // i am getting all data
this.Catdatanames = this.Catdata.CatID; // not working
console.log(this.Catdata.CatID); // not working
}
}
我希望catID
下的CatgeoryList
。
更新:
更新 home.html:
<div class="item item-body no-padding" style="border-width: 0px !important;">
<div class="row no-padding" *ngFor="let data of Catdata;let i = index" (click)="opndetailpage()">
<ng-container *ngIf=" i % 2 === 0">
<div class="col col-50 custom-design2" style="background: url(url) no-repeat center;background-size: cover;">
<div class="custom-design1"><span class="grid-title">{{Catdata[i].CategoryName}}</span></div>
</div>
<div class="col col-50 custom-design2" style="background: url(url) no-repeat center;background-size: cover;">
<div class="custom-design1"><span class="grid-title">{{Catdata[i+1].CategoryName}}</span></div>
</div>
</ng-container>
</div>
</div>
home.ts
constructor(
public alertCtrl: AlertController,
public app: App,
public loadingCtrl: LoadingController,
public modalCtrl: ModalController,
public navCtrl: NavController,
public toastCtrl: ToastController,
public confData: ConferenceData,
public user: UserData,
public http:Http,
public authService: AuthService
) {
this.showLoader();
this.authService.categ(this.loginData).then((result) => {
this.loading.dismiss();
this.data = result;
if(this.data.status == 1)
{
this.Catdata = this.data.CatgeoryList;
for(let i=0; i<this.Catdata.length; i++) {
console.log(this.Catdata[i].CategoryName);
}
}
else if(this.data.status == 0) {
let alert = this.alertCtrl.create({
title: 'Error',
subTitle: 'Please Enter Valid Username & Password',
buttons: ['OK']
});
alert.present();
}
}, (err) => {
this.loading.dismiss();
});
}
我的 takeexam.html
<ion-buttons>
<button (click)="canceltap()" style="font-size: 15px;text-transform: none;" ion-button>Cancel
</button>
</ion-buttons>
我的takeexam.ts
canceltap() {
// this.navCtrl.pop();
console.log("pop tap");
this.navCtrl.setRoot(TabsPage); .// this is my home page
}
所以当我按takeexam.html
中的取消按钮时,它会进入tabp [age.html(主页)。但是没有数据显示。我只是尝试在我的主页上使用硬编码一些值。那时我按下取消按钮显示所有数据。
所以我发现问题在于使用ionviewdidload或其他一些数据。我试过了。ionViewDidEnter
ionDidLoad
。但没有任何作用
答案 0 :(得分:1)
由于this.data.CatgeoryList
是一个数组,因此您需要使用循环来对每个项执行某些操作
this.authService.categ(this.loginData).then((result) => {
this.loading.dismiss();
this.data = result;
if(this.data.status == 1) {
// this.Catdata is an array
this.Catdata = this.data.CatgeoryList;
// Use a loop to print the items
for(let i=0; i<this.Catdata.length; i++) {
console.log(this.Catdata[i].CatID);
}
}
}
如果你想在视图中显示它,你可以像这样使用ngFor
<ion-list>
<ion-item *ngFor="let item of Catdata">
{{ item.CatID }}
</ion-item>
</ion-list>
<强>更新强>
但如果我想通过onclikc获取catID。意味着我需要通过 那个catID到我的另一页意味着。离子2(点击)我怎么能通过 这个catID到下一页
更新视图
<ion-list>
<ion-item (click)="showDetails(item.CatID)" *ngFor="let item of Catdata">
{{ item.CatID }}
</ion-item>
</ion-list>
您可以在组件代码上添加新方法
public showDetails(catId: any): void {
this.navCtrl.push(AnotherPage, { catId: catId });
}
在第二页的构造函数中,使用NavParams
获取数据constructor(public params: NavParams){
// userParams is an object we have in our nav-parameters
this.catId = this.navParams.get('catId')
}