File
Metadata
| changeDetection |
ChangeDetectionStrategy.OnPush |
| selector |
cx-product-variant-color-selector |
| templateUrl |
./product-variant-color-selector.component.html |
Index
Properties
|
|
|
Methods
|
|
|
Inputs
|
|
|
Methods
|
changeColor
|
changeColor(code: string, name: string)
|
|
|
|
Returns : null
|
|
getVariantOptionValue
|
getVariantOptionValue(qualifiers: VariantOptionQualifier[])
|
|
|
Parameters :
| Name |
Type |
Optional |
| qualifiers |
VariantOptionQualifier[]
|
No
|
|
|
product
|
Type : Product
|
Decorators :
@Input()
|
|
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import {
BaseOption,
Product,
RoutingService,
VariantOptionQualifier,
VariantQualifier,
} from '@spartacus/core';
@Component({
selector: 'cx-product-variant-color-selector',
templateUrl: './product-variant-color-selector.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ProductVariantColorSelectorComponent {
constructor(private routingService: RoutingService) {}
@Input()
product: Product;
@Input()
variants: BaseOption;
changeColor(code: string, name: string): null {
if (code) {
this.routingService.go({
cxRoute: 'product',
params: { code, name },
});
}
return null;
}
getVariantOptionValue(qualifiers: VariantOptionQualifier[]) {
const obj = qualifiers.find((q) => q.qualifier === VariantQualifier.COLOR);
return obj ? obj.value : '';
}
}
<ng-container>
<div class="variant-selector">
<div class="variant-name">{{ 'productVariants.color' | cxTranslate }}:</div>
<select
(change)="changeColor($event.target.value, product?.name)"
class="form-control variant-select"
>
<option
*ngFor="let v of variants?.options"
value="{{ v.code }}"
[selected]="v.code === product?.code"
>
{{ getVariantOptionValue(v.variantOptionQualifiers) }}
</option>
</select>
</div>
</ng-container>
Legend
Html element with directive