Angular
Wink komponente so same po sebi Angular Elements — naravno se integrirajo v Angular aplikacije. Edina potrebna nastavitev je, da Angularov prevajalnik dovoli neznana imena elementov.
Namestitev
Section titled “Namestitev”npm install @wink/elementsBootstrap — naložite CDN enkrat
Section titled “Bootstrap — naložite CDN enkrat”Pokličite load() pred bootstrapApplication (ali znotraj APP_INITIALIZER):
import { bootstrapApplication } from '@angular/platform-browser';import { AppComponent } from './portal/app.component';import { load } from '@wink/elements';
load({ clientId: import.meta.env['NG_APP_WINK_CLIENT_ID'] });
bootstrapApplication(AppComponent).catch(console.error);Dovoli imena po meri
Section titled “Dovoli imena po meri”Dodajte CUSTOM_ELEMENTS_SCHEMA vsakemu samostojnemu komponentu (ali modulu), ki uporablja <wink-*> oznake:
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@Component({ selector: 'app-hotels', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: ` <wink-content-loader layout="HOTEL" [id]="layoutId" /> <wink-lookup /> `,})export class HotelsComponent { layoutId = 'YOUR_LAYOUT_ID';}Povezovanje atributov
Section titled “Povezovanje atributov”Angularova sintaksa predloge deluje neposredno z atributi nizov po meri:
<!-- Statično --><wink-content-loader layout="HOTEL" id="abc123" />
<!-- Dinamično povezovanje --><wink-content-loader [attr.layout]="layout" [attr.id]="layoutId" />Uporabite vezavo [attr.name], kadar je vrednost dinamična — običajna Angularjeva vezava [property] cilja na DOM lastnosti, ne na HTML atribute, na katerih temeljijo komponente po meri.
Okoljske spremenljivke
Section titled “Okoljske spremenljivke”Za projekte @angular/cli 16+ uporabite environment.ts ali predpono NG_APP_* z @ngx-env/builder:
export const environment = { winkClientId: 'YOUR_CLIENT_ID',};import { environment } from './environments/environment';load({ clientId: environment.winkClientId });TypeScript tipi
Section titled “TypeScript tipi”Paket @wink/elements izvaža tipizirane vmesnike za vse atribute komponent:
import type { WinkContentLoaderAttributes, WinkLayout } from '@wink/elements';
const attrs: WinkContentLoaderAttributes = { layout: 'HOTEL' as WinkLayout, id: 'abc123',};