如何在 ng2-tag-input 中使用自定义样式组件作为标签背景颜色?

Posted

技术标签:

【中文标题】如何在 ng2-tag-input 中使用自定义样式组件作为标签背景颜色?【英文标题】:How to use Custom style component for tags background color in ng2-tag-input? 【发布时间】:2017-06-17 07:07:15 【问题描述】:

如何在 ng2-tag-input 插件中为标签添加背景颜色,我搜索了它,他们说我们需要使用自定义组件的样式,我添加但找不到触发器,我正在使用这个 @987654321 @ website.任何人都可以帮助我吗?

video.component.ts 文件

import  Component, forwardRef  from '@angular/core';
import  TagInputComponent  from 'ng2-tag-input';
import  NG_VALUE_ACCESSOR  from '@angular/forms';

@Component(
     selector: 'custom-tag-input', 
    providers: [
        provide: NG_VALUE_ACCESSOR,
        useExisting: forwardRef(() => videoComponent ),
        multi: true
    ],
    template:`<tag-input [ngModel]="['Typescript', 'Angular 2']"></tag-input>`,
    styleUrls: [],
     animations: [
        trigger('flyInOut', [
            state('in', style(transform: 'translateX(0)')),
            transition(':enter', [
                animate(200, keyframes([
                    style(opacity: 0, offset: 0),
                    style(opacity: 0.5, offset: 0.3),
                    style(opacity: 1, offset: 1.0)
                ]))
            ]),
            transition(':leave', [
                animate(150, keyframes([
                    style(opacity: 1, transform: 'translateX(0)', offset: 0),
                    style(opacity: 1, transform: 'translateX(-15px)', offset: 0.7),
                    style(opacity: 0, transform: 'translateX(100%)', offset: 1.0)
                ]))
            ])
        ])
    ]

)
export class videoComponent extends TagInputComponent

     constructor() 

      public options = 
         readonly: undefined,
        placeholder: 'Add a tag'
    ;

    public onAdd(item) 
        console.log(item + ' added');
    

    public onRemove(item) 
        console.log(item + ' removed');
    

    public onSelect(item) 
        console.log(item + ' selected');
    

    public onFocus(item) 
        console.log('input focused: current value is ' + item);
    

    public onBlur(item) 
        console.log('input blurred: current value is ' + item);
    

    public transform(item: string): string 
        return `@$item`;
    

    private startsWithAt(control: FormControl) 
        if (control.value.charAt(0) !== '@') 
            return 
                'startsWithAt@': true
            ;
        
        return null;
    
    private endsWith$(control: FormControl) 
        if (control.value.charAt(control.value.length - 1) !== '$') 
            return 
                'endsWith$': true
            ;
        
        return null;
    
    public validators = [this.startsWithAt, this.endsWith$];
    public errorMessages = 
        'startsWithAt@': 'Your items need to start with "@"',
        'endsWith$': 'Your items need to end with "$"'
    ;



app.module.ts 文件

import  TagInputModule  from 'ng2-tag-input';
import  videoComponent  from './videos/video.component'; 


@NgModule(
    imports: [
        BrowserModule,
        CommonModule,
        FormsModule,

        TagInputModule, 
    ],
    declarations: [ Home, videoComponent ], // we need this here
    bootstrap: [ Home ], // this is just an example
    entryComponents: [ Home ] // this is just an example
)
export class AppModule 
platformBrowserDynamic().bootstrapModule(AppModule);

【问题讨论】:

【参考方案1】:

您需要使用父组件的样式覆盖tag-input 组件的样式。您需要使用 /deep/ 关键字,它会告诉 Angular 让子代继承 CSS 的指定部分。有时您可能需要使用 !important 关键字来确保值将被覆盖。

你需要在你想要修改样式的组件中找到对应的css类。

例子:

/deep/ .example-style-which-can-be-used-by-children 
    background-color: red !important;

查看标签输入here的scss并以parent的样式创建相应的类。

【讨论】:

以上是关于如何在 ng2-tag-input 中使用自定义样式组件作为标签背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用caret包的train函数构建多元自适应回归样条(MARS)模型模型调优自定义设置trainControl函数和tuneLength参数自定义调优评估指标

R语言使用caret包的train函数构建多元自适应回归样条(MARS)模型模型调优自定义设置tuneGrid参数多个超参数组合调优trainControl函数自定义调优评估指标

WPF自定义控件与样式(10)-进度控件ProcessBar自定义样

django自定义signal的发送和接收样例

java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之,并作出反应?

织梦自定义图片字段调用图片地址