将数据从db推入数组后调用另一个javascript函数
Calling another javascript function after pushing data from db into an array
这段代码从db中检索数据然后推入angularJS脚本中的数组
if(type == 'createSupplierInvoice'){
vm.data.organization = {};
vm.data.organization.selected = {
name: result.data.name,
id: result.data.organization_id
}
vm.data.ship_request_id = result.data.ship_request_id;
vm.data.terms = Number(result.data.payment_terms);
if(result.products.length > 0){
for(var i = 0;i<result.products.length;i++){
vm.products.push({
id: result.products[i].id,
product_id: result.products[i].ship_product_id,
code : result.products[i].ship_product_code,
description : result.products[i].ship_product_description,
request_quotation_detail_id : result.products[i].ship_request_quotation_detail_id,
qty : result.products[i].qty,
price : result.products[i].price,
total_price : result.products[i].total_price,
remarks : result.products[i].remarks,
temp_tax : 0,
temp_total: 0,
temp_subtotal: 0,
});
}
}
for(var d = 0; d < vm.products.length; d++){
calculateTotal(vm.products[d]);
console.log(vm.products[d]);
}
}
这是我的calculateTotal函数
function calculateTotal(items){
console.log(items);
var tax = parseFloat(vm.data.tax_percentage);
var qty = parseFloat(items.qty);
var price = parseFloat(items.price);
var temp_total = parseFloat(0), temp_subtotal = parseFloat(0);
temp_subtotal += (qty * price);
tax = parseFloat(temp_subtotal * (vm.data.tax_percentage * 1) / 100);
temp_total += parseFloat(temp_subtotal + tax);
items.temp_tax = parseFloat(tax);
items.temp_subtotal = parseFloat(temp_subtotal);
items.temp_total = parseFloat(temp_total);
setTotal();
}
function setTotal(){
var calculated_tax = parseFloat(0), calculated_subtotal = parseFloat(0), calculated_total = parseFloat(0);
for(var i = 0; i < vm.products.length; i++){
calculated_tax += parseFloat(vm.products[i].temp_tax);
calculated_subtotal += parseFloat(vm.products[i].temp_subtotal);
calculated_total += parseFloat(vm.products[i].temp_total);
}
vm.data.total_tax = parseFloat(calculated_tax).toFixed(2);
vm.data.subtotal = parseFloat(calculated_subtotal).toFixed(2);
vm.data.grandtotal = parseFloat(calculated_total).toFixed(2);
}
我通过将console.log(items)放入calculateTotal函数中来测试代码,但它从未触发。该函数在被数据库中的数据推送后不会在数组循环中被调用。
但是console.log(vm.products[d])工作正常。它显示了正确的数据。如果我复制粘贴这两个函数(calculateTotal和setTotal)中的所有代码,它也在工作。我不知道为什么calculateTotal函数没有被触发,如果我直接在循环中调用它。有人能给我指路吗?
您在什么时候声明了函数?你的功能附在瞄准镜上吗?如果你在声明之前调用函数,我猜会有问题。
我尝试了一个示例代码,对我来说工作得很好。
var a=[
{'name':'jack','age':23},
{'name':'jones','age':24}
]
var calculateTotal= function(items){
console.log(items);
}
for(var d = 0; d < a.length; d++){
calculateTotal(a[d].name);
console.log(a[d].name);
}
JSFIDDLE
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 多次调用另一个javascript函数中的javascript函数
- 如何记录调用另一个函数的函数的返回值
- AngularJS服务函数调用另一个函数
- Meteor-如何在同一模板助手中调用另一个函数
- Javascript:从一个帧中调用另一个帧中的函数
- 调用另一个自定义指令的角度自定义指令
- 如何在 jQuery 中使用 eval 从不同的文件调用另一个函数
- 如何在 JavaScript 的后台调用另一个页面
- 如果我在 window.onbeforeunload 事件上确认是,我如何调用另一个 Java 脚本函数
- ajax没有;t成功后调用另一个js函数
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- 调用另一个HTML文件中的函数
- angularjs调用另一个控制器's函数
- 调用另一个php脚本生成图表时出现问题
- MongoDB:如何调用另一个JS文件中定义的函数
- 从一个元素中获取名称并调用另一个元素
- 在函数中调用另一个函数JQuery
- 调用另一个控制器Angularjs中的控制器
- 在方法内部调用另一个方法 ReactJS