Ho avuto l'idea di inserire gli input in direttive personalizzate per garantire un aspetto e un comportamento coerenti attraverso il mio sito. Voglio anche racchiudere il datapicker e il menu a discesa di ui di bootstrap. Inoltre, la direttiva dovrebbe gestire la convalida e visualizzare i suggerimenti.gli input di avvolgimento nelle direttive angolari
Il codice HTML dovrebbe essere simile a questo:
<my-input required max-length='5' model='text' placeholder='text' name='text'/>
o
<my-datepicker required model='start' placeholder='start' name='start'/>
nelle direttive Voglio creare una struttura DOM come:
<div>
<div>..</div> //display validation in here
<div>..</div> //add button to toggle datepicker (or other stuff) in here
<div>..</div> //add input field in here
</div>
ho provato vari modi per raggiungere questo obiettivo, ma si è sempre imbattuto in alcuni compromessi:
utilizzando transclude e sostituire inserire l'ingresso nella struttura direttive dom (in questo caso, la direttiva sarebbe limitato a 'A' non 'E' come nell'esempio precedente). Il problema qui è che non esiste un modo semplice per accedere all'elemento transclused in quanto voglio aggiungere attributi personalizzati in caso di datepicker. Potrei usare la funzione transclude e poi ricompilare il template nella funzione link, ma questo sembra un po 'complesso per questa attività. Ciò porta anche a problemi con l'ambito transclused e lo stato toggle per il datepicker (uno è nell'ambito delle direttive, l'altro nell'ambito transclused).
utilizzando solo la sostituzione. In questo caso, tutti gli attributi vengono applicati al div più esterno (anche se si genera la struttura dom del modello nella funzione di compilazione). Se uso solo l'input come modello, allora gli attributi sono sull'input, ma ho bisogno di generare il template nella funzione link e quindi ricompilarlo. Per quanto comprendo il modello di fase di angolare, vorrei evitare di ricompilare e modificare il modello di dom nella funzione di collegamento (anche se ho visto molte persone farlo).
Attualmente sto lavorando con il secondo approccio e generando il modello nella funzione di collegamento, ma mi chiedevo se qualcuno avesse qualche idea migliore!
Che tipo di attributi personalizzati si vuole essere in grado di aggiungere? Penso che un utile esempio dell'HTML in cui si vorrebbe rendere la direttiva (attributi personalizzati e tutti) sarebbe utile. –
Nel caso del datepicker vorrei impostare i valori standard di applicazione ampi. Il tag di input HTML risultante dovrebbe essere simile a: ' ' – roemer