これまでのところ、Rails アプリケーションで AngularJS モデルをセットアップし、フロントエンドでアクセスするデータを与えることに問題はありません。を使用して、AJAX リクエストからのデータが入力されるように設定しました$http
。$http
ただし、複数の呼び出しのデータを含めるには、このモデルが必要です。これまでに得たコードは次のとおりです。
function DropboxCtrl($scope, $http) {
var $infiniteLoader = $(".infiniteLoader");
var theUIDS = $infiniteLoader.attr('data-dropbox-uids').split(',');
if($infiniteLoader.attr('data-dropbox-uids') != "") {
var theData = {};
$.each(theUIDS, function(key) {
$http({ url: '/dropbox/files/get', method: 'GET', params: { uid: theUIDS[key] }}).success(function(data) {
theData = data;
});
});
$scope.dropboxes = theData;
}
}
DropboxCtrl
GET 要求を呼び出す必要があるすべての UID を取得することから始まるメソッドがあります。それぞれをループしてから、Javascript オブジェクトを追加data
します。theData
それぞれの後、ドロップボックスモデルを の値に等しくしますtheData
。現在、まったく何も返さず、Javascript エラーも返さないメソッドがあります。私のURLが完全に機能し、実際に次のような1つのAJAXリクエストだけでコードが機能することを確信しています。
$.each(theUIDS, function(key) {
$http({ url: '/dropbox/files/get', method: 'GET', params: { uid: theUIDS[key] }}).success(function(data) {
$scope.dropboxes = data;
});
});
ただし...そのコードブロックは最後のAJAX呼び出しのみを返します。他の呼び出しは上書きされるためです。たぶん、私が見逃しているのは間違った Javascript かもしれませんが、おそらく私が見逃しているのは、物事の「Angular way」を理解していないだけです。私は Javascript と jQuery に熟練していますが、Angular は初めてです。何か助けはありますか?