错误TypeError:无法读取null的属性“0”

问题描述 投票:-2回答:1

我正在尝试使用Angular动态生成一些文本字段,但它会产生错误。

这是代码:

ngFor

她是JS代码:

<div *ngFor="let item of items.stations; let i=index, let last = last" style="margin-bottom: 2px;">

<div class="row">
    <div *ngIf="!last">
        <div class="col-sm-4" >
            <div  style="">
                <div class="inner-addonx left-addon header-search" style="float:left;margin-right: 4px;">
                    <i class="glyphicon  markerx" style="border: 5px solid #FED141"></i>
                  </div>
              <span>{{item.station}}</span>
            </div> 
        </div>
        <div class="col-sm-1"><img style="    width: 32px;    height: 22px;" src="../assets/img/arrow.svg" ></div>
        <div class="col-sm-4" >
            <span *ngIf="items.stations[i+1]">{{items.stations[i+1].station}}</span>
        </div>
        <div class="col-sm-3" >
            <div class="input-group ">
              <input hidden  [attr.id]="'stationne' + i" #statione value='{{item.station}}  -  {{items.stations[i+1].station}}' />
                <div class="input-group spinner">
                  <input type="text" (blur)="onSearchChange(price.value,'stationne' + i)" #price id="'lastPrice'+i" value="12"  class="form-control "  />
                  <span class="input-group-addon">Dhs</span>
                  <div class="input-group-btn-vertical">
                      <button (click)="spinnerPriceUp(price.value,'lastPrice',i);onSearchChange(price.value,'stationne' + i)" class="btn btn-default" type="button"><i class="fa fa-caret-up"></i></button>
                      <button (click)="spinnerPriceDown(price.value,'lastPrice',i);onSearchChange(price.value,'stationne' + i)" class="btn btn-default" type="button"><i class="fa fa-caret-down"></i></button>
                  </div>
                </div>
            </div>
        </div>
    </div>
</div>

当我尝试单击微调器以上升数字(执行上面的功能)时,它给了我这个错误:

错误TypeError:无法读取null的属性“0”

javascript jquery angular
1个回答
0
投票

我可能会遗漏一些东西,但似乎你只想增加和减少输入。为此,您无需直接访问该文档。您正在使用 spinnerPriceUp(textFieldId, id,to){ let price=parseInt(textFieldId)+1; alert(price); //this.myForm.controls['stepfinal'].setValue(price); (<HTMLInputElement> document.getElementById(id))[to].value = price; } 模板var,所以您可以这样做

price

此外,angular建议您避免直接访问窗口/文档对象,以防您的代码在没有该对象的环境中运行。

这是一个演示// html <input #price value="12"> <button (click)="spinnerPriceUp(price)"></button> <button (click)="spinnerPriceDown(price)"></button> // ts spinnerPriceUp(price){ price.value++; } spinnerPriceDown(price){ price.value--; }

© www.soinside.com 2019 - 2024. All rights reserved.