我仍然是初学者,要使用此角度,并想挖掘它从控制器获取返回值的能力。
我只是想知道是否有可能使用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
答案 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。