私は、データベースにアクセスするためにRestangularを使用するAngularjsプロジェクトを持っています。私は3つのデータ層(mydata、mysubdata、mysubsubdataなど)を持っており、各層の間には1対多の関係があります。私の問題は、表示のために、私はmysubsubdataをmysubdataに連結する必要があるということです。私がデータベースからデータを取り戻そうとすると、私はループ内で関数を持つことができないというコンパイラの不満をぶつけています。ここで私が何をしようとしていますものです:.then内部のループの中でどのように関数を使うのですか?
DataService.one(mydata.id).getList('mysubdata')
.then(function(data) {
var dataList = data;
for (returnedData in dataList) {
DataService.one(mydata.id).one('mysubdata',returnedData.id).getList('mysubsubdata')
.then(returnedSubData) {
dataList = angular.extend(dataList, returnedSubData);
});
}
});
私が見つけたすべての例は.then関数内のループを持っているか、バック最初の約束の束を取得しようとしています。私はそれらが当てはまるとは思わない。私はまだAngularには新しく、だから私はちょっとフレキシブルかもしれない。どちらも延長についてはわかりませんが、それはおそらく別の質問です。
編集:これは$ q.allで行うべきだと思われますが、まだ方法を把握していません。
私は「約束」を返す必要があります。 – jdmdevdotnet
明確にするために、DataServiceはRestangularを使用しています。最初の部分(2番目のDataServiceまで)は正常に機能します。それを説明してくれないのは残念です。 –
サイクル内でクロージャを作成しようとしましたか? –