我在角度控制器中有这个javascript工作正常。
product.prod_custom_mb_qty = 0;
product.prod_custom_mb = null;
product.prod_custom_autoship = function (prod_name, prod_qty) {
if (prod_name === "mb") {
if (prod_qty === 0) {
product.prod_custom_mb_qty = 0;
} else {
product.prod_custom_mb_qty += prod_qty;
}
}
if (product.prod_custom_mb_qty < 1){
product.prod_custom_mb_qty = 0;
product.prod_custom_mb = null;
} else if (product.prod_custom_mb_qty === 1) {
product.prod_custom_mb = product.prod_custom_mb_qty + " Mango Bottle";
} else if (product.prod_custom_mb_qty > 1) {
product.prod_custom_mb = product.prod_custom_mb_qty + " Mango Bottles";
}
product.prod_custom_total = (product.prod_custom_mb_qty * 35);
}
问题是我需要为8种不同的产品再做8次,这样会有点麻烦。 有没有办法可以重构这一点,所以一切都可以更简单地完成?
我认为我可以通过将名称更改为var来实现:
product.prod_custom_qty[prod_name]
product.prod_custom[prod_name]
但我似乎无法让它发挥作用?我是在正确的轨道上吗?
答案 0 :(得分:0)
我建议组织它:
var products = [];
var productCount = 8;
while(productionCount--) {
var newProduct = {
prod_custom_mb_qty: 0,
prod_custom_mb: null
};
pruducts.push(newProduct);
processProduct(newProduct);
}
function processProduct (product) {
// Update your product properties here.
}