簡體   English   中英

為什么 typescript 將數字轉換為字符串?

[英]Why is typescript converting number to string?

我在下面有一個包含這些值的下拉列表,當我第一次使用初始值時,它是未定義的。 但是,在我更改為“30 分鍾”之后,又回到“任何”,因為 ngModel 使用的屬性從 30 設置為“未定義”? 它被設置為一個字符串?

實際屬性如下所示 - 我沒有意識到 typescript 會這樣轉換它?

length: number;

我的下拉菜單在這里

 <div class="form-group"> <label for="length">Length</label> <select class="form-control w-100" id="length" name="length" [(ngModel)]="eventParams.length"> <option *ngFor="let length of lengthList" [value]="length.value"> {{length.display}} </option> </select> </div>

 lengthList = [ {value: undefined, display: 'Any'}, {value: 30, display: '30 min'}, {value: 45, display: '45 min'}, {value: 60, display: '60 min'}, {value: 90, display: '90 min'} ];

Angular文檔中所述

值屬性跟蹤綁定到選項元素的簡單字符串值。 對於對象,使用 ngValue 輸入綁定。

使用 ngValue 屬性它將按預期工作。

<div class="form-group">
      <label for="length">Length</label>
      <select class="form-control w-100" id="length" name="length" [(ngModel)]="eventParams.length">
        <option *ngFor="let length of lengthList" [ngValue]="length.value">
          {{length.display}}
        </option>
      </select>
    </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM