Angular 2 - 在下拉列表中设置所选值

2024-04-13

我在 Angular 2 的下拉列表中预选择值时遇到了问题。

我在组件中设置了一个颜色数组,并将其成功绑定到下拉列表。我遇到的问题是在页面初始化上预先选择一个值。

线路[selected]="car.color.id == x.id"应该选择已在车型上设置的值this.car.color = new Colour(-1,'');但是,只有当我将汽车颜色 ID 设置为列表中的最后一项(在本例中为黑色)时,这才有效this.car.color = new Colour(4,'');

我正在使用最新版本的 Angular (rc3),并且在 rc1 和 rc2 中遇到了相同的问题。

这是一个显示问题的 plunker。

https://plnkr.co/edit/yIVEeLK7PUY4VQFrR48g?p=preview https://plnkr.co/edit/yIVEeLK7PUY4VQFrR48g?p=preview

另一个奇怪的方面是,当查看元数据时,Angular 已将所选值设置为 true。

但下拉菜单仍然显示为空。

这似乎是与这些相关问题不同的问题。

Angular 2 设置选择的开始值 https://stackoverflow.com/questions/36723173/angular-2-set-begin-value-of-select

在 Angular 2 中将选择元素绑定到对象 https://stackoverflow.com/questions/35945001/binding-select-element-to-object-in-angular-2

如何在 Angular2 中的对象数组上使用 select/option/NgFor https://stackoverflow.com/questions/33181936/how-to-use-select-option-ngfor-on-an-array-of-objects-in-angular2

Regards

Steve

组件模板

   <div>
        <label>Colour</label>
        <div>
            <select [(ngModel)]="car.colour"">
                <option *ngFor="let x of colours" [value]="x.id" [selected]="car.color.id == x.id">{{x.name}}</option>
            </select>
        </div>
    </div>

成分

import { Component, OnInit } from '@angular/core';
import {AbstractControl,FORM_DIRECTIVES } from '@angular/common';

@Component({
    selector:'dropdown',
    templateUrl:'app/components/dropdown/dropdown.component.html',
    directives:[FORM_DIRECTIVES]
})
export class DropdownComponent implements OnInit
{
    car:Car = new Car();
    colours = Array<Colour>();

    ngOnInit(): void {

        this.colours = Array<Colour>();
        this.colours.push(new Colour(-1, 'Please select'));
        this.colours.push(new Colour(1, 'Green'));
        this.colours.push(new Colour(2, 'Pink'));
        this.colours.push(new Colour(3, 'Orange'));
        this.colours.push(new Colour(4, 'Black'));

        this.car = new Car();
        this.car.color = new Colour(-1,'');        
    }
}

export class Car
{
    color:Colour;
}

export class Colour
{
    constructor(id:number, name:string) {
        this.id=id;
        this.name=name;
    }

    id:number;
    name:string;
}

Setting car.colour通常可以将其设置为您最初选择的值。

When car.colour已设置,可以删除[selected]="car.color.id == x.id".

如果该值不是字符串[ngValue]="..."必须使用。[value]="..."仅支持字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 - 在下拉列表中设置所选值 的相关文章

随机推荐

  • iPhone、核心数据和 JSON

    我有一个带有 API 的网站 它使用 JSON 发布信息 我可以很好地访问这个 API 但我真的很想使用 Core Data 将信息存储在 iPhone 应用程序中 有没有办法将持久存储连接到 JSON API 这样我就可以使用网站作为核心
  • 在 istio 中为 envoy 启用 http 标头日志记录

    我希望能够捕获 日志 至少部分 envoy我的 HTTP 标头istio服务网格 我已经经历过envoy s docs https www envoyproxy io docs envoy latest start quick start
  • 具有“不同于”的子集函数?

    是否可以通过说 subset dataset IA LABEL not equal to Er or Sie or Es or wird or gleich 之类的东西来使用子集函数 我感兴趣的是 不等于 运算符 子集函数有类似的东西吗 谢
  • 从文本文件中读取字符串和整数

    假设我有一个如下所示的文件 51 41 52 07 52 01 51 22 50 44 49 97 Coal Diggers 77 26 78 33 78 29 78 12 77 09 75 74 Airplane Flyers 31 25
  • 用Java删除锁定的文件?

    我们必须使用 Windows 上运行的 Java 来删除一些目录及其内容 我担心会遇到被锁定的目录文件 我们可以调用Unlocker http www emptyloop com unlocker 进行删除 或者是否有更以 Java 为中心
  • 在 Swift 中通过 TouchID 生成哈希或字符串 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想在 Swift 中通过 iPhone 上的 Touch ID 创建一个唯一的字符串或散列 我搜索了很多 但没有找到解决方案 你不可以做这
  • 如何删除 POI 生成的 Excel 中的警告?

    I am using Apache POI for writing content into excel sheet after generating an excel in all the cells which ever cell ha
  • 当被调用的 Activity 退出时,如何以自然的方式返回结果?

    什么工作正常 我的应用程序中有 2 个活动 第一个活动调用第二个活动来获取结果 第二个活动显示了新的布局并允许用户执行某些操作 有一个 确定 按钮 当用户按下此按钮时 第二个活动完成并且用户返回到第一个活动 在幕后 第一个活动像这样调用第二
  • 颤动中底片内的文本框

    我有一个如下所示的底页 It has a text box inside it when I cliked on that I am getting something like 我的文本框完全被键盘覆盖 有什么办法可以解决这个问题吗 下面
  • 获取 Android 上的活动驱动程序列表

    有没有一种简单的方法来获取 Android 设备上当前使用的驱动程序列表 lsmod列出了少量驱动程序 3 但我猜测大多数驱动程序都编译到内核中而不是作为模块 显然 像这样的事情make menuconfig由于设备本身缺乏开发工具 没有机
  • 模板参数数量错误的模板参数

    考虑一个模板类 C 它具有通过模板模板参数设置的策略和两个策略定义 template
  • Python应用程序引擎:如何保存图像?

    这是我从 flex 4 文件参考上传中得到的 自我请求 Request POST UPLOAD Accept text Cache Control no cache Connection Keep Alive Content Length
  • 如何找到一个向量中与另一个向量最接近的值?

    我有两个大小相等的向量 例如 A 2 29 2 56 2 77 2 90 2 05 and B 2 34 2 62 2 67 2 44 2 52 我有兴趣在两个相同大小的向量 A 和 B 中找到最接近的值 几乎相等 即在 A 中的所有元素中
  • Zend 框架 website.com/username

    我正在使用 Zend Framework 开发的应用程序之一要求通过 website com username 访问用户的个人资料页面 而其他页面应通过 website com controller name action name 访问
  • 当从 DataTemplateSelector 显式返回 DataTemplate 时,为什么 DataTemplate 无法绑定到接口?

    我创建了一个 DataTemplateSelector 它是使用一组已知接口进行初始化的 如果传递到选择器的项目实现了这些接口之一 则返回关联的数据模板 首先 这是有问题的 ICategory 接口 public interface ICa
  • 使用 T-SQL Merge 语句时如何避免插入重复记录

    我尝试使用 T SQL 的 MERGE 语句插入许多记录 但当源表中存在重复记录时 我的查询无法 INSERT 失败的原因是 目标表有一个基于两列的主键 源表可能包含违反目标表主键约束的重复记录 抛出 违反主键约束 我正在寻找一种方法来更改
  • 如何在 UML 类图中表示“事件”?

    这是我的代码片段 public class Notation INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged private N
  • Perl:查找并替换多个文本文件中的特定字符串

    我需要获取给定目录中的所有 config 文件 并且在每个文件中我需要搜索特定字符串并根据该文件替换为另一个字符串 例如 如果给定目录中有 3 个文件 for my foo config string to search fooCommon
  • Express 3错误中间件未被调用

    我正在尝试为我的 Express 应用程序设置错误处理并遇到以下问题 我定义了一个错误中间件并将其添加为最后一个中间件 error handler app use function err req res next console log
  • Angular 2 - 在下拉列表中设置所选值

    我在 Angular 2 的下拉列表中预选择值时遇到了问题 我在组件中设置了一个颜色数组 并将其成功绑定到下拉列表 我遇到的问题是在页面初始化上预先选择一个值 线路 selected car color id x id 应该选择已在车型上设