Angular 带可选参数的角度计算

Angular 带可选参数的角度计算,angular,angular-material,Angular,Angular Material,我正在为我们的销售代表实施一个工具,使他们能够与客户协商价格。我正在从后端加载一个包含rateplan和费用的产品列表,并在前端的表格中向用户显示。1个产品有n个费率计划(您只需选择一个),而一个费率计划有n个费用(设置的一次性费用、每月发生的0或n个固定费用以及可选的0-2次每次使用付费)。销售代表可以对每次收费给予折扣。还有一些费用,您可以在其中定义数量 每行的最后一列应显示不含数量的费用的折扣价格。计算应为listprice-(listprice/100*折扣)。 对于包含工程量的费用,计

我正在为我们的销售代表实施一个工具,使他们能够与客户协商价格。我正在从后端加载一个包含rateplan和费用的产品列表,并在前端的表格中向用户显示。1个产品有n个费率计划(您只需选择一个),而一个费率计划有n个费用(设置的一次性费用、每月发生的0或n个固定费用以及可选的0-2次每次使用付费)。销售代表可以对每次收费给予折扣。还有一些费用,您可以在其中定义数量

每行的最后一列应显示不含数量的费用的折扣价格。计算应为listprice-(listprice/100*折扣)。 对于包含工程量的费用,计算应如下所示: (标价-(标价/100*质量))*数量

由于某些原因,数量始终未定义。有人知道为什么或者知道解决方法吗(我想用value=“1”实现一个隐藏的输入字段,这样一个字段就被传递给total了……但我遇到了同样的问题……)

感谢您的支持!:)

实际上应该是

total(rateplancharge.pricing['0'].price, discountP.value, quantityP.value)

这给了我:TypeError:无法读取未定义的属性'value',这是因为您有两个id相同的输入
#quantityP
我刚刚更新了上面描述中的代码,但问题仍然是一样的…这可能是因为您使用的不是quantityP
*ngIf=“rateplancharge.defaultQuantity”
显示
#quantityP
。因此,如果未显示它,它将是未定义的。在html
id=“quanityP”
和组件
if(document.getElementById('quanityP')!==null){quanityP=document.getElementById('quanityP').value}中可以做什么;else{quanityP=0;}
现在可以工作,但最后一项的数量应用于每一行:/
  total(listprice, discount, index, quantityP?) {
    if (document.getElementById('quantityP' + index) !== null) {
      quantityP = document.getElementById('quantityP' + index).value;
    } else {
      quantityP = 1;
    }
    return (listprice - (listprice / 100) * discount) * quantityP;
  }
total(rateplancharge.pricing['0'].price, discountP.value, quantityP)
total(rateplancharge.pricing['0'].price, discountP.value, quantityP.value)