Javascript 如何在单击时向页面追加/显示/呈现数据
我想从API获取数据,并将其显示在index.html页面上。做这件事最好的方法是什么?寻找多种方式,可以是jquery,也可以是使用angular进行数据绑定。我似乎想不出一个函数来显示我得到的数据。我从两个不同的玩家那里获取了两个不同的数据,我想并排显示它们。JSON数据由API返回Javascript 如何在单击时向页面追加/显示/呈现数据,javascript,jquery,html,json,angularjs,Javascript,Jquery,Html,Json,Angularjs,我想从API获取数据,并将其显示在index.html页面上。做这件事最好的方法是什么?寻找多种方式,可以是jquery,也可以是使用angular进行数据绑定。我似乎想不出一个函数来显示我得到的数据。我从两个不同的玩家那里获取了两个不同的数据,我想并排显示它们。JSON数据由API返回 /**Part of Index.html**/ <body ng-app="lolvs" ng-controller="MainControl
/**Part of Index.html**/
<body ng-app="lolvs" ng-controller="MainController">
<div class="throwdown">
<h1> LoL THROWDOWN </h1>
<div class="summonerNames">
<input id="summonerOne" ng-model="summonerOne" placeholder="summoner name">
<button class="start" ng-click="start()">vs</button>
<input id="summonerTwo" ng-model="summonerTwo" placeholder="summoner name">
</div>
/**app.js**/
(function(){
'use-strict'
var mainCtrl = function mainCtrl($scope, $rootScope, MainFactory) {
$scope.start = MainFactory.start;
$rootScope.$on('gotStats', function (e, m) {
console.log('arguments >>', arguments);
$scope.player1 = {
totalChampionKills : 0,
totalDeathsPerSession : 0,
totalAssists : 0,
totalSessionsWon : 0,
totalSessionsLost :0,
totalMinionKills: 0,
totalTurretsKilled: 0,
};
$scope.apply();
});
};
var mainFactory = function ($http, $rootScope) {
var api = 'api_key=***************************';
var add = function(data, status, headers) {
var stats = {
totalChampionKills : 0,
totalDeathsPerSession : 0,
totalAssists : 0,
totalSessionsWon : 0,
totalSessionsLost :0,
totalMinionKills: 0,
totalTurretsKilled: 0,
};
var champions = data.champions;
for(var i = 0; i < champions.length; i++) {
var champ = champions[i].stats;
for(stat in stats) {
if(champ[stat]) {
stats[stat] += champ[stat]
}
}
}
};
var start = function(name) {
var options = {
url: 'https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/' + name + '?' + api,
type: 'GET',
success: summonerOption
};
$http(options);
};
var summonerOption = function(data, status, headers) {
var name = Object.keys(data)[0];
var newOption = {
url: 'https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/' + data[name].id + '/ranked?season=SEASON4&' + api,
type: 'GET',
success: add
};
$http(newOption);
};
return {
start: start
}
};
angular.module('lolvs', [])
.controller('MainController', ['$scope', '$rootScope', 'MainFactory', mainCtrl])
.factory('MainFactory', ['$http', '$rootScope', mainFactory])
})();
返回的是什么类型的数据?如果它是一个json数组,您可能希望在将整个内容打印到您的网页之前对其进行迭代。
然而,理论上,您应该在成功的ajax调用后处理数据,这似乎是在按index.html中的后执行的
这可能是这样的:
var newOption = {
url: 'https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/' + data[name].id + '/ranked?season=SEASON4&' + api,
type: 'GET',
success: function(data) {
$('.containerForData').html('<div class="data-wrap">' + data + '</div>');
}
};
不幸的是,你的问题不是很清楚,但我希望这能有所帮助