我会根据变量值更改 p-autocomplete 组件的样式
我有一个切换输入来确定我的变量是真还是假
<div class="switch-inner">
<p [ngClass]="{'businessG': !toggle }" class ="toggle-inline ">Business group</p>
<div class="toggle-btn toggle-inline">
<label class="switch">
<input type="checkbox" [(ngModel)]="toggle">
<span class="slider round"></span>
</label>
</div>
<p [ngClass]="{'borrower': toggle }" class="toggle-inline">Borrower</p>
</div>
然后我使用这个值来设置悬停时我的建议项背景的样式。
实际上我使用的是我通过使用::ngdeep 更改的默认颜色
::ng-deep .ui-autocomplete-list-item:hover{
background-color: #24B3C7; // would change this to another color
font-family: 'BNPPSans';
border-radius: 0
}
我会根据切换变量的值更改背景颜色。
这是我的组件 html
<div class="container" id ="inputSearchPage">
<div class="search-input col-md-6 col-sm-6 ui-fluid" >
<p-autoComplete [(ngModel)]="text" [suggestions]="results" (completeMethod)="search($event)"
emptyMessage={{noBorrowerResult}}
[minLength]="3"
[size] = "40"
field = "name"
>
<ng-template let-elm pTemplate="item" class="suggestion-item" >
<div >{{elm.name}} ( ID: {{elm.code}} )</div>
<div class="add-button">+</div>
</ng-template>
</p-autoComplete>
</div>
如何根据切换值设置背景颜色? (如果为真,则将 ::ng-deep .ui-autocomplete-list-item:hover
backgroud-color 设置为颜色 1,否则设置为颜色 2)
最佳答案
您可以使用 ngStyle,但目前不支持悬停,因此您必须使用 mouseenter 和 mouseleave 来解决它。
所以在你的html中你可以添加
[ngStyle]="(hover && toggle) ? { 'background-color': 'someColor' } : { 'background-color':
'anotherColor' }" (mouseover)="hover=true" (mouseleave)="hover=false"
关于html - 有条件地更改 Angular 组件的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387382/