typescript 基于类型脚本中的值的Angular预选下拉项

fumotvh3  于 2023-08-07  发布在  TypeScript
关注(0)|答案(2)|浏览(108)

我在尝试根据typescript中的值预先选择Angular下拉项时遇到了一些问题。以下是我的typescript:

transferFeeTblCombBxRowIndex : any;
if (arborSvcTy.trim() === '501') {
    this.transferFeeTblCombBxRowIndex = '1';
} else {
    console.log("COME IN ELSE");
    this.transferFeeTblCombBxRowIndex = '0';
}

字符串
在我的html中,我尝试使用双向绑定:

<td>
     <select class="form-control" name="transferFeeTblCombBxRow" [(ngModel)]="transferFeeTblCombBxRow" [disabled]="isTransferFeeTblCombBxRowDisabled">
           <option disabled value="transferFeeTblCombBxRowIndex == '0'">-- Please Select --</option>
           <option value="transferFeeTblCombBxRowIndex == '1'">Charged</option>
            <option value="transferFeeTblCombBxRowIndex == '2'">Waived</option>
     </select>
</td>


我设法从控制台打印出"COME IN ELSE"。但是,下拉列表在第一项处未被预先选择。
有什么想法吗?谢谢!

dojqjjoe

dojqjjoe1#

这个transferFeeTblCombBxRowIndex == '0'条件将返回布尔变量 (true/flase),而不是select的value

<select class="form-control" name="transferFeeTblCombBxRow [(ngModel)]="transferFeeTblCombBxRow">
   <option disabled value="0">-- Please Select --</option>
   <option value="1">Charged</option>
   <option value="2">Waived</option>
</select>

字符串
技术支持:

transferFeeTblCombBxRow : number = 2;


StackBlitz

yhuiod9q

yhuiod9q2#

您对select下拉列表的预期似乎不正确。在select下拉列表中,每个option都有一个唯一的value。这是必要的,这样您就可以从下拉菜单中的选项进行区分。当您选取其中一个选项时,该optionvalue会设定为您的select下拉式清单的value。我们使用ngModel绑定到select下拉列表的value。“
您的模板表达式会将option值设置为truefalse。您需要将模板表达式中的option值更改为实际值本身。您还将错误的变量设置为ngModel。在您的元件中,您设定的是transferFeeTblCombBxRowIndex,而使用的是transferFeeTblCombBxRow做为ngModel
这是您的模板应该看起来的样子。

<select class="form-control" name="transferFeeTblCombBxRow" [(ngModel)]="transferFeeTblCombBxRowIndex" [disabled]="isTransferFeeTblCombBxRowDisabled">
  <option value="0" disabled>-- Please Select --</option>
  <option value="1">Charged</option>
  <option value="2">Waived</option>
</select>

字符串
顺便说一句,即使你想计算一个模板表达式,你也必须使用[value]或者用{{...}}来代替(比如[value]="transferFeeTblCombBxRowIndex == '0'"或者value="{{transferFeeTblCombBxRowIndex == '0'}}")(参见文档)。

相关问题