错误错误:名称为“ result”的表单控件没有值访问器

时间:2020-09-28 15:07:45

标签: angular input resultset

我在Angular中构建了一个具有基本功能的简单计算器

该操作运行正常,但是当我单击该操作的符号而不是得到结果时,我将得到“错误错误:名称为“ result”的表单控件没有值访问器

HTML

<div class="layout-column align-items-center">


  <h4 data-test-id="total-operations" class="pt-50">Total operations performed:{{count}} </h4>
  <div class="card">
    <section class="card-text">
      <div class="layout-row justify-content-around align-items-center mt-40">
        <input type="number" class="ml-3 mr-3" data-test-id="app-input1" [(ngModel)]="inp1" autocomplete="off" placeholder="Eg: 1"
               name="input1"/>

        <label class="ml-2 mr-2 symbol text-center" data-test-id="selected-operator"></label>

        <input type="number" data-test-id="app-input2" [(ngModel)]="inp2" autocomplete="off" class="ml-3 mr-3"
               placeholder="Eg: 2"/>
      </div>

      <div class="layout-row justify-content-around mt-30">
        <button type="submit" (click)="sum(inp1,inp2)" data-test-id="add-button"><span
          class="operationFont">+</span></button>
        <button type="submit" (click)="subtract(inp1,inp2)" data-test-id="subtract-button">
          <span class="operationFont">-</span></button>
        <button type="submit" (click)="multiply(inp1,inp2)" data-test-id="multiply-button"><span
          class="operationFont">*</span></button>
        <button type="submit" (click)="divide(inp1,inp2)" data-test-id="divide-button"><span
          class="operationFont">/</span>
        </button>
      </div>


      <div class="layout-row justify-content-between align-items-center mt-30">
        <button type="reset" (click)="reset(inp1,inp2)" class="outline danger" data-test-id="reset-button">
          Reset
        </button>
        <div class="layout-row justify-content-center align-items-center result-container">
          <h5 *ngIf="result" data-test-id="result" name="result" [(ngModel)]="result" class="result-value ma-0 slide-up-fade-in">{{result}}</h5>
        </div>

      </div>
    </section>

  </div>
</div>

TS

export class CalculatorComponent implements OnInit {
  inp1: number;
  inp2: number;
  result: number;
  symbol: string;
  count: number;

  ngOnInit() {
  }

  reset(in1,in2){
this.inp1=in1
this.inp2=in2
this.inp1=+''
this.inp2=+''
  }




  subtract(inp1,inp2){
    this.inp1=inp1;
   this.inp2=inp2;
   console.log(this.inp1-this.inp2)
    this.result= this.inp1-this.inp2
    return this.result
  }
  multiply(inp1,inp2){
    this.inp1=inp1;
   this.inp2=inp2;
   console.log(this.inp1*this.inp2)
  this.result= this.inp1*this.inp2
  return  this.result
  }

  divide(inp1,inp2){
    this.inp1=inp1;
   this.inp2=inp2;
   console.log(this.inp1/this.inp2)
    this.result= this.inp1/this.inp2
    return this.result
  }


  sum(in1:number, in2:number){
   this.inp1=in1;
   this.inp2=in2;
   console.log(this.inp1+this.inp2)
   return  this.result= this.inp1+this.inp2
  }
}

我还有一个奇怪的结果。日志是正确的,并且仅当我单击“重置”按钮时才会显示结果。令我感到困惑的人可以帮助我吗?我猜它非常简单的强调文本

1 个答案:

答案 0 :(得分:0)

答案在HTML中

在结果标签中,它必须存在一个名称属性,例如name="result"ngDefaultControl

那清除了错误