加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

typescript – 角度2 – 在下拉列表中设置所选值

发布时间:2020-12-17 07:42:46 所属栏目:安全 来源:网络整理
导读:在角色2的下拉列表中,我已经遇到了一个预选值的问题. 我在组件中设置一个颜色数组,我将其成功绑定到下拉列表中.我遇到的问题是在页面init上预先选择一个值. 应该选择汽车模型’this.car.color = new Color(-1,”)上设置的值,该行'[selected] =“car.color.id
在角色2的下拉列表中,我已经遇到了一个预选值的问题.

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

应该选择汽车模型’this.car.color = new Color(-1,”)上设置的值,该行'[selected] =“car.color.id == x.id” “然而,这只有当我将车辆颜色id设置为列表中的最后一个项目(在这种情况下为黑色)时才有效.’this.car.color = new Color(4,”);’

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

这是一个显示问题的广告.

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

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

但是下拉列表仍然显示为空.

这似乎是这些相关问题的独立问题.

Angular 2 Set begin value of select

Binding select element to object in Angular 2

How to use select/option/NgFor on an array of objects in Angular2

问候

史蒂夫

组件模板

<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;
}
将car.colour设置为您最初选择的值通常可以工作.

当car.colour设置后,您可以删除[selected] =“car.color.id == x.id”.

如果值不是字符串[ngValue] =“…”必须使用. [value] =“…”只支持字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读