到目前为止,我在我的 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。我遍历它们中的每一个,然后附加data
到theData
哪个是 Javascript 对象。在每个之后,我使我的保管箱模型等于theData
. 当前,我的方法完全没有返回任何内容,也没有 Javascript 错误。我很肯定我的 url 可以完全正常工作,并且实际上确实让代码只使用了一个 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 方式”的理解。我精通 Javascript 和 jQuery,但对 Angular 很陌生。有什么帮助吗?