Javascript 将数组从数据库传递到控制器AngularJs
我有一个小问题,这个应用程序,我正在建设学习AngularJs 这是一个足球统计应用程序。我从2个下拉菜单中选择主队和客队。 然后我要做一些数学运算,只显示结果 这是我的html代码:Javascript 将数组从数据库传递到控制器AngularJs,javascript,html,angularjs,node.js,Javascript,Html,Angularjs,Node.js,我有一个小问题,这个应用程序,我正在建设学习AngularJs 这是一个足球统计应用程序。我从2个下拉菜单中选择主队和客队。 然后我要做一些数学运算,只显示结果 这是我的html代码: <div class='dropdown'> <span>Seleziona Nazione: </span> <select class='opzioni' ng-model="nazioniSelected
<div class='dropdown'>
<span>Seleziona Nazione: </span>
<select class='opzioni' ng-model="nazioniSelected">
<option ng-repeat="nazione in nazioni track by $index" value="{{nazione}}">{{nazione}}
</option>
</select>
</div>
<div class='dropdown2'>
<span>Seleziona Campionato: </span>
<select class='opzioni' ng-model="campionatoSelected">
<option ng-repeat="team in teams | filter: {Paese:nazioniSelected} track by $index" value="{{team.Campionato}}">{{team.Campionato}}
</option>
</select>
</div>
<div class='SquadraCasa'>
<span>Seleziona Squadra Casa: </span>
<select class='opzioni' ng-model="HomeTeamSelected" >
<option ng-repeat="team in teams | filter:
{Campionato:campionatoSelected, Paese:nazioniSelected} track by $index"
value='{{team.Nome}}'>
{{team.Nome}}
</option>
</select>
</div>
<div class='SquadraTrasferta'>
<span>Seleziona Squadra Trasferta: </span>
<select class='opzioni' ng-model="AwayTeamSelected">
<option ng-repeat="team in teams | filter:
{Campionato:campionatoSelected, Paese:nazioniSelected} track by $index"
value='{{team.Nome}}'>{{team.Nome}}
</option>
</select>
</div>
<div class='InfoCasa'>
<ul ng-repeat='team in teams | filter: {Nome: HomeTeamSelected} track by $index'>
<img ng-show='HomeTeamSelected' src="{{team.Stemma}} ">
<p class='nome' ng-show='HomeTeamSelected'> {{team.Nome}} </p>
</ul>
</div>
<div class='InfoTrasferta'>
<ul ng-repeat='team in teams | filter: {Nome: AwayTeamSelected} track by $index'>
<img ng-show='AwayTeamSelected' src="{{team.Stemma}} ">
<p class='nome2' ng-show='AwayTeamSelected'> {{team.Nome}} </p>
</ul>
</div>
<div class="Calcolo" ng-show='AwayTeamSelected'>
<p>
Doppia Chance {{doppia}}
</p><br><br>
<p>
1x2
</p><br><br>
<p>
Over 1,5
</p><br><br>
<p>
Over 2,5
</p>
<button class="calcola" ng-click='calcolarisultato(HomeTeamSelected,AwayTeamSelected)' > Calcola
</div>
塞莱齐奥纳·纳齐奥内:
{{nazione}}
Seleziona Campionato:
{{team.Campionato}
塞莱齐奥纳·斯瓦德拉之家酒店
{{team.Nome}}
塞莱齐奥纳·斯瓦德拉·特拉斯弗塔:
{{team.Nome}}
{{team.nome}
{{team.Nome}}
多皮亚机会{{Doppia}
1x2
超过1,5
超过2,5
卡尔科拉
我的问题是:在这个ng单击中,我不仅要传递名称,还要传递所有团队变量,因为我需要关于我所选团队的所有数据
目前,我的控制器是这样的,不工作:
FootballNumbers.controller('teamController', function($scope, $route, $routeParams, $http) {
$http.get('/api/teams').then(function(response) {
$scope.teams = response.data;
console.log(response.data);
});
var squadra = $scope.teams;
$scope.nazioni = ['Austria', 'Belgio', 'Bulgaria', 'Croazia', 'Danimarca', 'Finlandia',
'Francia', 'Germania', 'Grecia', 'Inghilterra', 'Italia', 'Norvegia', 'Olanda',
'Polonia', 'Portogallo', 'Rep. Ceca', 'Romania', 'Russia', 'Spagna', 'Turchia', 'Svezia',
'Svizzera', 'Ucraina'
];
$scope.calcolarisultato = function(squadra1, squadra2) {
for (i = 0; i < squadra.length; i++) {
for (j = 0; j < squadra.length; i++) {
if (squadra[i].Nome == squadra1) {
if (squadra[j].Nome == squadra2) {
var media1 = (squadra[i].Classifica + squadra[i].ClassificaCasa +
squadra[i].Forma) / 3;
var media2 = (squadra[j].Classifica + squadra[j].ClassificaTrasferta +
squadra[i].Forma) / 3;
if ((media1 + 3) <= media2) {
$scope.doppia = '1 X';
} else if ((media2 + 3) <= media1) {
$scope.doppia = 'X 2';
} else {
$scope.doppia = 'Niente';
}
}
}
}
}
}
});
FootballNumbers.controller('teamController',函数($scope、$route、$routeParams、$http){
$http.get('/api/teams')。然后(函数(响应){
$scope.teams=response.data;
console.log(response.data);
});
var squadra=$scope.teams;
$scope.nazioni=[“奥地利”、“比利时”、“保加利亚”、“克罗地亚”、“达尼马卡”、“芬兰”,
“弗朗西娅”、“日耳曼尼亚”、“格雷西亚”、“英吉尔特拉”、“意大利”、“挪威”、“奥兰达”,
“波罗尼亚”、“波多加洛”、“塞卡众议员”、“罗马尼亚”、“俄罗斯”、“斯帕尼亚”、“图尔基亚”、“斯维齐亚”,
“Svizzera”、“Ucraina”
];
$scope.calcolarisultato=函数(squadra1、squadra2){
对于(i=0;i 如果((media1+3)问题是由于异步执行。由于异步执行,squadra
的值在API调用之外未定义
FootballNumbers.controller('teamController', function($scope, $route, $routeParams, $http) {
$http.get('/api/teams').then(function(response) {
$scope.teams = response.data;
console.log(response.data);
var squadra = $scope.teams;
});
$scope.nazioni = ['Austria', 'Belgio', 'Bulgaria', 'Croazia', 'Danimarca', 'Finlandia',
'Francia', 'Germania', 'Grecia', 'Inghilterra', 'Italia', 'Norvegia', 'Olanda',
'Polonia', 'Portogallo', 'Rep. Ceca', 'Romania', 'Russia', 'Spagna', 'Turchia', 'Svezia',
'Svizzera', 'Ucraina'
];
$scope.calcolarisultato = function(squadra1, squadra2) {
for (i = 0; i < squadra.length; i++) {
for (j = 0; j < squadra.length; i++) {
if (squadra[i].Nome == squadra1) {
if (squadra[j].Nome == squadra2) {
var media1 = (squadra[i].Classifica + squadra[i].ClassificaCasa +
squadra[i].Forma) / 3;
var media2 = (squadra[j].Classifica + squadra[j].ClassificaTrasferta +
squadra[i].Forma) / 3;
if ((media1 + 3) <= media2) {
$scope.doppia = '1 X';
} else if ((media2 + 3) <= media1) {
$scope.doppia = 'X 2';
} else {
$scope.doppia = 'Niente';
}
}
}
}
}
}
});
FootballNumbers.controller('teamController',函数($scope、$route、$routeParams、$http){
$http.get('/api/teams')。然后(函数(响应){
$scope.teams=response.data;
console.log(response.data);
var squadra=$scope.teams;
});
$scope.nazioni=[“奥地利”、“比利时”、“保加利亚”、“克罗地亚”、“达尼马卡”、“芬兰”,
“弗朗西娅”、“日耳曼尼亚”、“格雷西亚”、“英吉尔特拉”、“意大利”、“挪威”、“奥兰达”,
“波罗尼亚”、“波多加洛”、“塞卡众议员”、“罗马尼亚”、“俄罗斯”、“斯帕尼亚”、“图尔基亚”、“斯维齐亚”,
“Svizzera”、“Ucraina”
];
$scope.calcolarisultato=函数(squadra1、squadra2){
对于(i=0;i 如果((media1+3)您使用异步函数初始化团队
,但在获取这些值之前初始化了squadra
变量。只需使用$scope.teams
并删除此行,而不是在控制器内使用squadra值:
var squadra = $scope.teams;
然后,无论您在控制器中的何处使用squadra,都可以使用$scope.teams
还可以考虑将常量定义为单独的AngularJS常量,而不是在控制器中列出它们,然后在控制器中注入该常量。这样可以使代码更干净、更可重用。好的,但是这样我就在下拉列表中丢失了所有过滤器。糟糕,如果使用API的response.Ca,我没有检查HTML代码n是否尝试使用更新后的答案?我将此变量squadra=$scope.teams;移动到API调用中,或按照下面的建议使用$scope值编辑变量,我不再收到错误,但当我单击按钮时,什么也没有发生。您是否将squadra
存在的所有代码更改为$scope.teams
如squadra[i].Nome
应该变成$scope.teams[i].Nome
?是的……事实上,当我单击按钮时,没有出现错误,但没有其他任何情况发生。我会检查better@MarcoPagano索诺·费利斯·拉·索卢齐奥·阿比娅·福齐奥纳托:)联合国短笛协调者。在所有内部密码中使用密码。在所有密码中使用密码。在bocca al-lupo应用程序中,使用密码的所有人都可以方便地进行密码调试:)