我对AngularJS很新,所以请提前道歉。
var tcores = 0;
angular.module('core').controller('HomeController', ['$scope', '$http',
function($scope, $http) {
$http.get('search?idc=LH5&type=Virtual&cluster=1').success(function(data) {
$scope.servers = data; // get data from json
angular.forEach($scope.servers, function(item){
//console.log(item.cores);
if(parseInt(item.cores) != "NaN" && item.cores != "") {
if(angular.isNumber(parseInt(item.cores))) {
tcores = parseInt(tcores) + parseInt(item.cores);
}
}
})
console.log("Hall 5. Cluster 1 Total Cores: " + tcores);
});
}
]);
angular.module('core').controller('HomeController', ['$scope', '$http',
function($scope, $http) {
$http.get('search?idc=LH5&type=Virtual&cluster=2').success(function(data2) {
$scope.serverscluster = data2; // get data from json
angular.forEach($scope.serverscluster, function(item){
//console.log(item.cores);
if(parseInt(item.cores) != "NaN" && item.cores != "") {
if(angular.isNumber(parseInt(item.cores))) {
tcores = parseInt(tcores) + parseInt(item.cores);
}
}
})
console.log("Hall 5. Cluster 2 Total Cores: " + tcores);
});
}
]);
我正在尝试运行这两个函数(两者都指向不同的JSON输出),但是我只收到“cluster 2”的响应。
请告知我如何在同一模块中运行这两个功能,理想情况下,我将在同一页面上运行其中8个请求,因此建议最受欢迎。#
你能告诉我的为什么只有底部函数正在执行吗?
非常感谢!
答案 0 :(得分:3)
正如我在评论中写的那样,你必须将$http.get
链接在一起,你必须避免重复的控制器名称。这是一个简化的代码:
angular.module('core').controller('HomeController', ['$scope', '$http',
function ($scope, $http) {
$http.get('search?idc=LH5&type=Virtual&cluster=1').then(function (data) {
console.log(data);
return $http.get('search?idc=LH5&type=Virtual&cluster=2');
}).then(function(data2) {
console.log(data2);
$scope.serverscluster = data2; // get data from json
});
}]);
这是一个JSFiddle
答案 1 :(得分:0)
为什么不想在单个控制器中调用您的函数:
trade_id