我有从服务中分配的变量,我需要来自变量值的实时计算器来填充另一个变量。
这是代码
$scope.getSubTotalSCTax = function(){
TableService.checkOut('SubTotal',$scope.DetailMeja.finCheckInID)
.then(function(response){
console.log(response);
$ionicLoading.hide();
$scope.checkOut = {
SubTotal:response.SubTotal,
TaxPercentage:response.TaxPercentage,
ServiceChargePercentage:response.SCPercentage,
};
}, function(err){
console.log(err);
})
};
$scope.getSubTotalSCTax();
$scope.checkOut.ServiceCharge = $scope.checkOut.SubTotal * $scope.checkOut.ServiceChargePercentage / 100;
$scope.checkOut.Tax = $scope.checkOut.SubTotal * $scope.checkOut.TaxPercentage / 100;
此行TypeError: Cannot read property 'SubTotal' of undefined
$scope.checkOut.ServiceCharge = $scope.checkOut.SubTotal * $scope.checkOut.ServiceChargePercentage / 100;
*编辑:
我的税率和服务费用百分比input type="text"
。
每当税收百分比或服务费用百分比改变其值时,我需要重新计算
* EDIT2:
重新计算使用ng-change
事件解决的问题,并调用运行re-Calculate
函数
答案 0 :(得分:0)
您需要考虑TableService.checkout
异步运行的事实。在其余代码评估完毕之前,它不会调用then
回调。
您可以通过返回承诺来解决此问题。
$scope.getSubTotalSCTax = function(){
var promise = TableService.checkOut('SubTotal',$scope.DetailMeja.finCheckInID);
promise.then(function(response){
// ...
});
return promise;
};
然后在调用方法时将另一个then
链接到promise上。
$scope.getSubTotalSCTax().then(function() {
$scope.checkOut.ServiceCharge = $scope.checkOut.SubTotal * $scope.checkOut.ServiceChargePercentage / 100;
$scope.checkOut.Tax = $scope.checkOut.SubTotal * $scope.checkOut.TaxPercentage / 100;
});
答案 1 :(得分:0)
scope.getSubTotalSCTax = function() {
return TableService.checkOut('SubTotal', $scope.DetailMeja.finCheckInID)
};
$scope.getSubTotalSCTax().then(function(response) {
console.log(response);
$ionicLoading.hide();
$scope.checkOut.ServiceCharge = response.SubTotal * response.SCPercentage / 100;
$scope.checkOut.Tax = response.SubTotal * response.TaxPercentage / 100;
}, function(err) {
console.log(err);
})