Ionic 3.5

时间:2017-07-20 09:35:44

标签: angular ionic-framework ionic3 ionic-view

我是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;
    }

1 个答案:

答案 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