繁体   English   中英

在Typescript和Angular2中绑定并获取下拉列表值

[英]Bind and fetch dropdown list value in typescript and Angular2

这个问题被问了很多遍,对我的问题无济于事。 不确定该方法有什么问题,并希望您有一些新的“眼睛”

这是我在HTML中的dropdownlist绑定:我正在绑定programName,它是一个同时包含值和文本属性的字符串。

<select [ngModel]="selectedObject">
   <option *ngFor="let p of programs" value= {{p.programName}}>
         {{p.programName}}
   </option>
</select>

在我的.ts文件中,这是将默认值绑定到“ select”的操作

 loadData(pList: IProgram[]) {
    this.programs = pList;
    if (this.programs.length > 0) {
        this.selectedObject = this.programs[0];
    }
}

数据已正确绑定到“选择”,

  • 但默认值显示为空文本,我需要单击并选择一个值。
  • 另一个问题是,当我将下拉列表的值从A更改为B时,“ selectedObject”值始终为我提供“ A”而不是“ B”。 由于它是[ngModel],因此需要进行两种方式的绑定。 但是,它没有发生,因为我可能在这里丢失了一些东西。

有人可以解决这种方法的问题吗?

试试下面,

<select [(ngModel)]="selectedObject">
   <option *ngFor="let p of programs" 
           [ngValue] = "p"
           [selected]="p.programName == selectedObject.programName"
          >
         {{p.programName}}
   </option>
</select>

检查这个柱塞!

希望这可以帮助!!

基本上,问题是在声明[ngModel]时。 它应该在[(ngModel)]中,这是我最初的问题中遗漏的。 :)

非常感谢Madhu Ranjan提供了有关修复的帮助!

更正后(ngModel)能够成功绑定并获取。

<select [**(ngModel)**]="selectedObject"><option *ngFor="let p of programs"value= {{p.programName}}>{{p.programName}}</option> </select>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM