Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 无法分配给';总计';因为它是函数get total(){}的常量或只读属性_Angular_Typescript - Fatal编程技术网

Angular 无法分配给';总计';因为它是函数get total(){}的常量或只读属性

Angular 无法分配给';总计';因为它是函数get total(){}的常量或只读属性,angular,typescript,Angular,Typescript,当我在项目中使用此命令时,显示此错误。 无法分配给“total”,因为它是函数get total()的常量或只读属性{} 我的职能是: get total() { return this.products .map(p => p.Unit_price * p.Quantity) .reduce((a, b) => a + b, 0); } Html: 有什么想法吗?使用--prod标志构建实际使用aot,这比

当我在项目中使用此命令时,显示此错误。 无法分配给“total”,因为它是函数get total()的常量或只读属性{}

我的职能是:

  get total() {
         return this.products
          .map(p => p.Unit_price * p.Quantity)
          .reduce((a, b) => a + b, 0);
      }
Html:

有什么想法吗?

使用
--prod
标志构建实际使用aot,这比仅使用ng serve时要严格得多

我认为这是因为所有字段的
[(ngModel)]
设置为
total
,并使用双向绑定(get/set);您与
total
getter冲突


由于总数是经过计算的,我认为为
总数
设置双向绑定是没有意义的,它应该是只读的。对于ngModel,小计/支付金额不应使用
total
我也有同样的问题,但就我而言,是指表格的有效状态

<-- HTML-->
<button 
    type="submit"
    [(disabled)]="!loginForm.valid">
    Enter
</button>

进入
对我有效的是将该检查分配给一个新的公共变量

<-- JS -->
public validForm: boolean;

 ngOnInit() {
     this.validForm = this.loginForm.valid;
 }
<-- HTML -->
<button 
    type="submit" 
    [(disabled)]="!validForm">
    Entrar
</button>

公共有效形式:布尔;
恩戈尼尼特(){
this.validForm=this.loginForm.valid;
}
诱捕者

如果只使用单向数据绑定,也可以使用

<button 
    type="submit" 
    [disabled]="!loginForm.valid">
    Entrar
</button>

诱捕者

这对我很有用。您使用的是什么angular和cli版本?你能运行“ng serve”吗?你试过在total()之前没有“get”吗?如果你只是“返回5”,它能工作吗;(例如)?@ForestG“@angular/cdk”:“^5.1.1”;“@angular/cli”:“^1.6.2”,当我运行ng serve时,工作良好您能告诉我您在哪里使用它吗?或者您在哪里使用了
total
变量?请,您能为此提出任何解决方案吗?当使用
[value]=“total”type=“text”class=“validate”[(ngModel)]=“total”
或任何计算total的示例时,我遇到了这个问题?
<-- JS -->
public validForm: boolean;

 ngOnInit() {
     this.validForm = this.loginForm.valid;
 }
<-- HTML -->
<button 
    type="submit" 
    [(disabled)]="!validForm">
    Entrar
</button>
<button 
    type="submit" 
    [disabled]="!loginForm.valid">
    Entrar
</button>