Diciamo che sono legato ad avere un sito accessibile che verrà consultato con JS disabilitato.Come eseguire un miglioramento progressivo su un elenco HTML con angularjs?
Ho un elenco delle notizie che posso sintesi in questo modo:
<ul>
<li>News 1</li>
<li>News 2</li>
<li>News 3</li>
</ul>
Ogni volta che si ricarica la pagina, si ottiene le notizie più recenti ha aggiunto, e quello vecchio vengono scartati se hai più di 10 notizie .
Ora, se ho usato Angulard JS, devo inserire i dati in un modello e una ng-repeat e sbarazzarmi del mio codice HTML statico. L'elenco verrà popolato in modo dinamico, quindi le persone con JS vedranno l'elenco aggiornato in tempo quasi reale.
Quello che mi serve è far lavorare i due insieme. Ho bisogno dell'elenco statico e, se JS è attivato, voglio che gli elementi attuali vengano inseriti nel modello e gestiti da angularjs.
Ora il mio attuale modo per farlo è:
- quando il mio modello di inizializzare, Parthe la lista DOM, estrarre manualmente i dati, e rimuovere tutta la lista bambino
- iniettare codice modello angolare nella lista
- cerchiamo angolare fare la sua magia
fa schifo perché si perde la bontà dichiarativa di angolare, più si ha un sacco di codice caldaia non è ancora generica, in modo da riscrivere per eve ry widget nella tua pagina.
Vorrei semplicemente nascondere l'html statico e visualizzare il DOM angolare quando javascript è abilitato. Dovrai iniettare il modello js equivalente all'html statico che hai generato, non è molto bello ma cercare di ottenere i dati iniziali da DOM sarà più difficile da mantenere IMHO. In un mondo perfetto si genera la pagina statica con un motore javascript e angolare sul server per non dover replicare codice/modelli ma non esiste un modo semplice per farlo atm. – Guillaume86
Non sarebbe il mio mondo perfetto, perché non mi piace codificare in JS :-) Mi piace il tuo approccio (dovresti renderlo una risposta così da poterlo upvode) perché è semplice e manutenibile. Bt significa caricare il doppio delle dimensioni del set di dati, quindi non siamo definitivamente in un mondo ideale. –
Grazie, farò una piccola risposta con questo;) – Guillaume86