2017-11-06 17 views
1

私はコード活字ストア解析クエリ結果

export class AppComponent implements OnInit { 
    public guests: any[] = []; 


    constructor(private apiService: ApiService) { 

    } 

    ngOnInit(): void { 
    this.apiService.getAllGuestsQuery().find({ 
     success(results) { 
     for (let i = 0; i < results.length; i++) { 
      const object = results[i]; 
      console.log(object.get('companyName')); 
     } 
     }, 
     error(error) { 
     console.log("Error: " + error.code + " " + error.message); 
     } 
    }); 
    } 
} 

getAllGuestsQuery戻りParse.Queryオブジェクトを次のようしています。私はゲストの配列に結果を保存したいと思います。例えば。何かのようにしてくださいthis.quests = results しかし、成功メソッド内でthis.guestsクラスの変数にアクセスすることはできません。

どうすればいいですか?

答えて

1
export class AppComponent implements OnInit { 
    public guests: any[] = []; 


    constructor(private apiService: ApiService) { 

    } 

    ngOnInit(): void { 
    let vm = this; 
    this.apiService.getAllGuestsQuery().find({ 
     func(r){ vm.guests } // will be available 
    }); 
    } 
} 

これは、{}構文をfind()関数に渡すと、そこに新しいスコープが作成されるためです。 ES6の矢印構文を使用した方がこれをよりうまくいくことができます(しかし、書くのは手間がかかります。完全に違う方法でエラーを処理する必要があります。約束してください)

0

ngOnInit()メソッドの先頭に別の変数にthisへの参照を渡すことができます。 let that = this;のようなものです。コールバックでthatを介してthis(クラスインスタンス)を参照してください。