Ajax调用angularJs调用方法

时间:2019-08-20 05:51:39

标签: javascript angularjs ajax asp.net-mvc

我仍然是初学者,要使用此角度,并想挖掘它从控制器获取返回值的能力。

我只是想知道是否有可能使用ajax调用然后将返回值传递给angular。

我创建了一个函数来使用ajax从控制器获取值

 $response  = curl_exec($ch);
 $header_data= curl_getinfo($ch);
 print_r($header_data);

所以这是我的目标,我需要像这样在我的角度调用中传递上面的函数:

function myData() {
    $.ajax({
        url: '/Home/testGetMSSQL',
        type: 'GET',
        dataType: 'json',
        success: function (data) {
            return data
        },
        error: function (jqXhr, textStatus, errorThrown) {
            alert(errorThrown);
        }
    });        
}

现在它不起作用,但是如果我要传递一个硬编码值,它将起作用:

var app = angular.module('myApp', ['ui.bootstrap']);
    app.controller('myCtrl', function ($scope) {
        $scope.customers = myData(),
            $scope.people = [],
            $scope.currentPage = 1,
            $scope.numPerPage = 5,
            $scope.maxSize = 5;

        $scope.numPages = function () {
            return Math.ceil($scope.customers.length / $scope.numPerPage);
        };

        $scope.$watch('currentPage + numPerPage', function () {
            var begin = (($scope.currentPage - 1) * $scope.numPerPage)
                , end = begin + $scope.numPerPage;

            $scope.people = $scope.customers.slice(begin, end);
        });

    });

我只是参考以下示例: https://codepen.io/jyothinagaraj/pen/ALoYgO

赞赏任何建议/意见。 TIA

1 个答案:

答案 0 :(得分:1)

尝试使用$http而不是使用ajax,以使其停留在角度摘要周期


var app = angular.module('myApp', ['ui.bootstrap']);
    app.controller('myCtrl', function ($scope,$http) {
     $scope.spinner = true;
     $scope.init = function(){

        $http.get('/Home/testGetMSSQL').then(function(res){
            $scope.customers = res;
            $scope.spinner = false;
        })
     }
     $scope.people = [],
      $scope.currentPage = 1,
      $scope.numPerPage = 5,
      $scope.maxSize = 5;

      $scope.numPages = function () {
            return Math.ceil($scope.customers.length / $scope.numPerPage);
      };

        $scope.$watch('currentPage + numPerPage', function () {
            var begin = (($scope.currentPage - 1) * $scope.numPerPage)
                , end = begin + $scope.numPerPage;

            $scope.people = $scope.customers.slice(begin, end);
        });

    });

html中的

<div ng-controller="myCtrl" ng-init="init()" >

注意::尝试放置某种微调器,以便在从服务器端获取$scope.customer之前禁用UI。