2016-08-25 3 views
0

$http.getサービス(約束)を呼び出すコントローラの初期化時に呼び出される関数があります。この約束は、Webサービスからアイテムのリストを取得します。また、リストのページ区切りのプロパティに$watchがあります。

私の問題は、私が$watchで行っていることが約束に依存していることです(そして、$watchはそれを見ていません。リストは一度しかロードされません)。したがって、ページをロードするときに、Webサービスが呼び出された後、$watch(リストが初期化される前)が表示され、私の約束が返されます。だから$ watchで起こることは正しい行動ではない。

約束を返すために$watchを待たせる方法はありますか?

+1

'$ watch'式を' .then'または '.done'(どちらを使っているか)に入れます。あなたの質問はあまりにも抽象的です。多分私はコードを見ることができれば私は助けることができるだろう。 –

+1

あなたは 'function'の中に腕時計を持ち、あなたの約束が完了したときにその関数を呼び出して、レジスタを取得することができます。 –

+0

これはうまくいきました。申し訳ありませんが、私が以前にそれを試していない理由はわかりません。あなたがた両方に感謝します – Krihox

答えて

0

正解を得るには、いくつかのコードを投稿することをお勧めします。

ページングオブジェクトで$watchCollectionを使用するか、第3パラメータobjectEquality = trueを使用して$watchを使用することをお勧めします。

Webサービスからロードされたリストを更新するには、約束オブジェクトに$watchを使用しないでください。.than()約束の方法を使用する必要があります。