我是Ionic的新手,我使用Ionic 3.5和AngularIO,对于我的情况,问题是在ajax调用之后我从服务获取数据但是视图没有在模拟器中更新。虽然视图在Web版本中正确呈现。 这是我的组件和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;
}
答案 0 :(得分:2)
我认为您从BranchEntity
函数返回observable
而不是promise
。在这种情况下,订阅一个事件而不是使用loadTags
then
不要使用jquery private loadTags() {
this.tagService.getTagData().subscribe((data) => {
this.tagData = data;
alert(JSON.stringify(data));
}, (error) => {
alert("Error occured");
})
}
语法。使用角度2内置组件
ajax