il mio obiettivo è capire come utilizzare correttamente angularJS. Voglio essere in grado di legare una selezione di variabili per cambiare dinamicamente la struttura DOM usando angularJS. Non penso di capire abbastanza la documentazione fornita dall'angolare e non ho trovato alcun esempio qui o in altro modo. Qualsiasi aiuto è apprezzato.Angularjs - Cambia dinamicamente dom con direttive o widget?
L'idea è che ho questo caso d'uso in cui in primo luogo inizio con la selezione del tipo e da quel tipo selezionato, gli elementi del tipo di input appropriati verranno creati e quindi registrati successivamente con il modello ng (dai textareas a caselle di controllo per esempio), il tutto controllato dal controller angularjs per validazione/restrizioni. Sono abituato all'idea di avere elementi clonabili sulla pagina e di distruggerli e crearne di nuovi con jQuery, ma ho letto che i controller non dovrebbero avere questa logica e dovrebbero invece essere creati con direttive/widget. Tuttavia, non vedo alcun esempio di direttive o widget manipolati in questo modo, quindi non sono nemmeno sicuro di come procedere. Posso usare le direttive per manipolare il DOM in questo modo, non solo una volta ma più volte in base a un elemento guardato?
Esempio di cosa mi piacerebbe fare.
$scope.types = ['Type1','Type2']
// something along the lines of...
$scope.layouts = {'Type1':['textarea','textarea'], 'Type2':['numeric','datepicker']}
Seleziona Tipo 1:
- Visualizza zone 2 testo
Seleziona tipo 2:
- Mostra un input numerico
- Mostra una selezione data
Grazie,
-JR.
Questo è il posto dove stavo andando, vorrei che ci fossero altri esempi che potrei imparare dal loro sito. Quella funzione di orologio è molto utile per questo. Questo è esattamente il tipo di cosa che stavo cercando. Apprezzo l'aiuto! – kman
(riguardo al codice direttiva :) Penso che non dovresti aggiungere un 'scope. $ Watch' all'interno di' render', dato che devi configurare '$ watch' solo una volta. – mik01aj
@ m01 è in realtà nella funzione di collegamento. In realtà è in esecuzione più di una volta? –