我在工厂声明了一个名为" voci" 的数组, 然后我有一个控制器用一个函数" CalcolaTotaleEuroPagine" 更新数组,我想要的是访问数组" voci" 更新并在视图中打印,但它不起作用。 我在这做了什么:
JS
var LandingApp = angular.module('LandingApp',[]);
//SERVICE THAT RETURN ARRAY
LandingApp.factory('PreventivoTotaleFront', function () {
var voci = {};
voci.lista = [];
return {
add: function (voce) {
voci.lista.push({
id: voci.lista.length,
costo: voce
});
console.log(voci);
}
};
return voci;
});
//CONTROLLER THAT UPDATE ARRAY
LandingApp.controller('numberpages',function($scope,PreventivoTotaleFront){
$scope.primapagina = 150;
$scope.altrepagine = 90;
$scope.numeroaltrepagine = 0;
$scope.TotaleEuroPagine = 0;
$scope.CalcolaTotaleEuroPagine = function(){
return $scope.TotaleEuroPagine = $scope.altrepagine * $scope.numeroaltrepagine + $scope.primapagina;
PreventivoTotaleFront.add(TotaleEuroPagine);
};
});
HTML
<body ng-app="LandingApp">
<div class="container">
<form ng-controller="numberpages">
<label>N° Pagine interne: </label><input type="number" min="0" ng-model="numeroaltrepagine" ng-change="CalcolaTotaleEuroPagine()"></input>
<br/>{{TotaleEuroPagine | currency:""}}€<br/>
<!--PRINT THE ARRAY VOCI-->
<div>{{voci}}</div>
</form>
</div>
</body>
答案 0 :(得分:0)
声明错误
$scope.CalcolaTotaleEuroPagine = function(){
return $scope.TotaleEuroPagine = $scope.altrepagine * $scope.numeroaltrepagine + $scope.primapagina;
PreventivoTotaleFront.add(TotaleEuroPagine);
};
您在致电工厂之前从该功能返回。因此工厂不更新阵列。
在返回语句之前将此行放入PreventivoTotaleFront.add(TotaleEuroPagine);