Ionic 3.5 中的视图未更新
View is not updating in Ionic 3.5
我是 Ionic 的新手,我正在使用 Ionic 3.5 和 AngularIO,对于我的情况,问题是在 ajax 调用之后我从服务中获取数据,但视图没有在模拟器中更新.虽然视图在网络版本中得到正确呈现。
这是我的组件和 html
export class HomePage {
private tagService: TagService;
public tagData: any;
constructor(public navCtrl: NavController) {
this.tagService = new TagService();
this.loadTags();
}
private loadTags() {
this.tagService.getTagData().then((data)=>{
this.tagData = data;alert(JSON.stringify(data));
}, ()=>{
alert("Error occured");
});
}
}
<ion-item *ngFor="let tag of tagData" (click)="tagClicked($event)" class="activity" color="positive" data-item="tag">
{{tag.name}}
<ion-icon name="{{tag.icon}}" item-right></ion-icon>
</ion-item>
服务方法在这里
public getTagData() :Promise<Tag[]> {
let promise: Promise<Tag[]>;
promise = new Promise((resolve, reject)=>{
$.ajax({
url: "data/tag.data.json",
success: (data) => {
this.tags = data;
resolve(this.tags);
},
error: () => {
reject();
}
});
});
return promise;
}
我认为您从 loadTags
函数返回 observable
而不是 promise
。在那种情况下订阅事件而不是使用 then
private loadTags() {
this.tagService.getTagData().subscribe((data) => {
this.tagData = data;
alert(JSON.stringify(data));
}, (error) => {
alert("Error occured");
})
}
不要使用 jquery ajax
语法。使用 angular 2 个内置组件
public getTagData(): any {
return this.http.get("data/tag.data.jso")
}
我是 Ionic 的新手,我正在使用 Ionic 3.5 和 AngularIO,对于我的情况,问题是在 ajax 调用之后我从服务中获取数据,但视图没有在模拟器中更新.虽然视图在网络版本中得到正确呈现。 这是我的组件和 html
export class HomePage {
private tagService: TagService;
public tagData: any;
constructor(public navCtrl: NavController) {
this.tagService = new TagService();
this.loadTags();
}
private loadTags() {
this.tagService.getTagData().then((data)=>{
this.tagData = data;alert(JSON.stringify(data));
}, ()=>{
alert("Error occured");
});
}
}
<ion-item *ngFor="let tag of tagData" (click)="tagClicked($event)" class="activity" color="positive" data-item="tag">
{{tag.name}}
<ion-icon name="{{tag.icon}}" item-right></ion-icon>
</ion-item>
服务方法在这里
public getTagData() :Promise<Tag[]> {
let promise: Promise<Tag[]>;
promise = new Promise((resolve, reject)=>{
$.ajax({
url: "data/tag.data.json",
success: (data) => {
this.tags = data;
resolve(this.tags);
},
error: () => {
reject();
}
});
});
return promise;
}
我认为您从 loadTags
函数返回 observable
而不是 promise
。在那种情况下订阅事件而不是使用 then
private loadTags() {
this.tagService.getTagData().subscribe((data) => {
this.tagData = data;
alert(JSON.stringify(data));
}, (error) => {
alert("Error occured");
})
}
不要使用 jquery ajax
语法。使用 angular 2 个内置组件
public getTagData(): any {
return this.http.get("data/tag.data.jso")
}