Qual è il modo migliore per passare un valore dal backend a AngularJS nel frontend? Uso Django e i modelli sono in grado di sputare i valori di cui ho bisogno, tuttavia non sono sicuro di quale sia la procedura migliore per trasmettere questi valori ad AngularJS.AngularJS - Passaggio dei valori dal backend al frontend
Pensa a un post di blog e ai suoi commenti, Se avessi un servizio AngularJS che recupera tutti i commenti di un determinato post del blog passando l'ID post al servizio, e Django sta visualizzando il modello HTML e sa cosa è l'ID postale, tuttavia ho bisogno di passare questo post ID a AngularJS e successivamente al servizio.
Un'idea è di averlo nascosto in uno <input>
e assegnare questo input a un modello. Non molto attraente.
Un altro è quello di avere una direttiva e superare questo valore in un attributo a questa direttiva, in questo modo sarei in grado di accedere il valore di questo attributo:
// Django (or any backend) is rendering {{ object.value }}
<div class="myDirective" data-object-id={{ object.value }}>
...
</div>
angular.module('myDirectives', []).
directive('myDirective', function() {
return {
restrict: 'C',
transclude: false,
link: function postLink($scope, $element, $attrs) {
// $attrs.objectId would have the value
}
}
});
Questi due approcci vanno bene. Ma mi chiedo se c'è un modo più pulito per farlo? Qualche approccio che segue le migliori pratiche di AngularJS?
Grazie. Direi che circa il 90% della mia applicazione è stata trasformata in client-side mentre il backend (Django) sta servendo esclusivamente API di resto. – abstractpaper
Come dice la documentazione, ng-init è appropriato solo con ng-repeat, un modo migliore sarebbe quello di creare una direttiva personalizzata per passare i dati da html a controller. – Charlesthk
Sono curioso di sapere come sia il compilatore Django che AngularJS dovrebbero funzionare con questa soluzione ... entrambi suppongono di leggere questa stessa area di codice alla volta? – Ricardo