javascript - 将数据从 jQuery.ajax() 传递到 Angular Controller ?

标签 javascript jquery ajax angularjs

我有以下名为 script.js 的 javascript 文件,其中包含 jQuery 函数:

function getData(a, b) {

var d = [];

while (a <= b)
{
    $.ajax({
        url: "someurl",
        dataType: 'json',
        success: function (data) {
            d.push(data.rates);
        },
        error: function (err) {
            console.log(err);
        }
    });
    a+=1;
}

$(document).ajaxStop(function () {
    console.log("AJAX STOP");
    return d;
}); }

说明:
我在 while 循环中填充数组 d ,其中包含从服务器 someurl 获得的响应信息。我想将此数组传递给名为 MainController.js 的 Controller 。我该怎么做呢?我想在我的 Controller 中有一个属性,例如 $scope.dataFromAjax,并且它必须等于 ajax() 中数组 d 的最终形式。
(类似于 $scope.dataFromAjax = d)。
谢谢。

最佳答案

通过使用 Angular 的 $http,您可以拥有一个为您获取数据的服务,您可以将其注入(inject)到访问数据所需的任何 Controller 、工厂、指令等中。

app.service('dataService', ['$http', function ($http) {
  return {
    getSomething: function () {
      return $http.get('someurl');
    },
    getSomethingElse: function () {
      return $http.get('someotherurl');
    }
  }
}]);

app.controller("yourController", ['$scope', 'dataService', function ($scope, dataService) {
  dataService.getSomething().success(function(dataResults) {
    $scope.data = dataResults; // This is available as soon as the promise (get) is resolved.
  });
}]);

关于javascript - 将数据从 jQuery.ajax() 传递到 Angular Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112231/

相关文章:

javascript - AngularJS 应用程序中的 CORS 错误

javascript - jquery mobile 无法获取正确的 url

php - jQuery/Ajax PHP POST 调用

javascript - 如何从ajax返回的对象中获取值

jquery - 通过 AJAX 提供 Fancybox

javascript - JS从文本框中抓取文本,传递给asp.net mvc ActionResult,但ActionResult参数显示为空

javascript - Laravel 使用 Ajax 设置 cookie

javascript - 使用脚本根据 CSS 条件隐藏整个 div?

javascript - 如何使用JS/Jquery读取post参数

php - 将图像注释保存到 MySQL 数据库中