代码之家  ›  专栏  ›  技术社区  ›  Kirataka

如何在角度2中的选择标记中显示颜色框?

  •  0
  • Kirataka  · 技术社区  · 8 年前

    我需要在“选择标签”下拉列表中显示一组颜色框,如下所示。

    我像下面那样试过

    <select>
    <option value='>选择颜色</option>
    <option value=“red”><DIV class=“color box”style=“background color:ff850a;”></DIV></option>
    <option value=“green”></option>
    <option value=“blue”></option>
    <option value=“yellow”></option>
    </选择>
    

    但它不起作用。这有图书馆吗?请建议。

    我像下面那样试过

    <select>
      <option value="">Choose Color</option>
      <option value="red"><div class="color-box" style="background-color: #FF850A;"></div></option>
      <option value="green"></option>
      <option value="blue"></option>
      <option value="yellow"></option>
     </select>
    

    但它不起作用。这有图书馆吗?请建议。

    4 回复  |  直到 8 年前
        1
  •  1
  •   Shaurya Dhadwal    8 年前

    我想这就是你要找的。

    选择框的颜色将更改为所选选项的颜色。

    应用组件.ts

    import { Component } from '@angular/core';
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
    
      selectedColor = '';
    
      colors = [
        {
          name: 'yellow',
          value: '#ffff00'
        },
        {
          name: 'red',
          value: '#ff3300'
        },
        {
          name: 'blue',
          value: '#0000ff'
        }
      ];
    
      onChange(value){
        this.selectedColor = value;
      }
    }
    

    app.component.html(应用程序组件.html)

    <select (change)="onChange($event.target.value)" [ngStyle]="{'background-color':selectedColor}">
        <option *ngFor="let color of colors" [value]="color.value" [ngStyle]="{'background-color':color.value}"></option>
    </select>
    

    运行代码: https://stackblitz.com/edit/angular-rzb4rg

    在组件本身中创建列表的好处是,您可以添加或编辑尽可能多的选项而不更改HTML,这也是我们在生产中使用它的方式。

        2
  •  1
  •   Krishna Rathore    8 年前

    你可以用 [ngStyle]

    我已经在上创建了一个演示 Stackblitz

    组件.html

    <select>
      <option *ngFor="let datas of data" [ngStyle]="{'background-color': datas.color}">{{datas.name}}</option>
    </select>
    

    组件.ts

    data=[{
        name:'Red',
        color:'red'
      },{
        name:'green',
        color:'#008000'
      }]
    
        3
  •  0
  •   faflo10    8 年前

    只需将您的样式应用于选项标记,它就可以按预期工作:

         <select>
          <option value="">Choose Color</option>
          <option value="red" style="background-color: #FF850A;"></option>
          <option value="green"></option>
          <option value="blue"></option>
          <option value="yellow"></option>
         </select>
    

    密码笔 here

        4
  •  0
  •   Lucifer    8 年前

    你能做的就是为选项写背景色。请参见下面的代码!

    <option value="">Choose Color</option>
    <option style="background-color: #FF850A;" value="red"></option>
    <option value="green"></option>
    <option value="blue"></option>
    <option value="yellow"></option>