我还没有发现另一个已经回答的问题。我已经查看了这个的描述页面并遵循了那里的指令。
因此,在我实际定义自定义引导程序的 Scss 文件夹中,我创建了一个新的标签输入主题并将其核心样式导入其中
@import "../../../../node_modules/ng2-tag-input/dist/modules/core/styles/core/_core.scss";
我也像这样在组件中添加我的主题名称。
@Component({
selector: 'tags',
moduleId: module.id,
template: `
<tag-input [(ngModel)]="tags"
(onSelect)="onSelectedTag($event)"
[theme]="'ark-tag-theme'"
[placeholder]="placeHolderKey | translate"
[secondaryPlaceholder]="placeHolderKey | translate"
[inputClass]="'input-of-tag-area-class'"
(onAdd)="onTagAdded($event)"
[addOnBlur]='true'
[editable]='true'
(onRemove)="onTagRemoved($event)"
(onTagEdited)="onTagEdited($event)"
[focusFirstElement]="true"
[trimTags]="true"
[errorMessages]="errorMessages"
[validators]="validators"
[separatorKeyCodes]="[32,188]"
[ngModelOptions]="{ standalone: false }" #input>
</tag-input>
`
})
这完全是我的 scss 文件
@import "../../../../node_modules/ng2-tag-input/dist/modules/core/styles/core/_core.scss";
$ark-theme:(
background-color: theme-color("secondary")
);
$ark-tag-theme: (
background: theme-color("secondary"),
background-focused: theme-color("secondary"),
background-active: theme-color("secondary"),
background-hover: theme-color("secondary"),
color: #fff,
color-hover: #fff,
border-radius: 2px
);
::ng-deep .ng2-tag-input.ark-tag-theme{
@include tag-theme($ark-theme);
}
::ng-deep .ng2-tag-input.ark-tag-theme tag{
@include tag-theme($ark-tag-theme);
}
这也是我的自定义引导设置
@import '../../../../node_modules/angular2-toaster/toaster';
// Core variables and mixins
@import "../../../../node_modules/bootstrap/scss/functions";
@import "variables-ark";
@import "../../../../node_modules/bootstrap/scss/bootstrap";
// Reset and dependencies
@import "glyphicons";
@import "ark-tag-theme";
@import "app";
@import "theme";
好的,我在组件的初始 div 处获得了新的 ark-tag-theme 类,但其他所有内容仍会读取 setup bootstrap3 并且没有读取我的任何类的标签。我也使用 /deep/ 而不是 ng-deep 但结果相同。由于输入组件在 node_modules 中,我确信无论如何我都不应该在那里做任何事情,因为它总是被覆盖。
WI 也在 Firefox 中尝试过,因为我听说 chrome 不尊重 ng-deep。那么如何让我的类读取输入标签?