Situazione:ng-includono - Controller è chiamato più volte
Sto cercando di includere un parziale ng-include
senza la necessità di alcun instradamento. Voglio solo includere uno specifico parziale di molti in modo dinamico. Questo è più o meno come appare:
<div ng-controller="SomeController">
//This controller defines a $scope.getPartial(id)
<ng-include src="getPartial(something.id)"></ng-include>
</div>
Funziona, il parziale è incluso. Ma guardando la console posso vedere che il controller è chiamato più volte e la prima volta che viene chiamato, ho un percorso GET 404
/a/i parziali/undefined.html [HTTP/1.1 404 Not Found 162 ms]
sembra che something.id non sia definito, quando l'inclusione viene effettuata per la prima volta.
Domande:
- come posso semplicemente includere un parziale, senza la creazione di un nuovo ambito?
- se ciò non è possibile, come posso essere sicuro che il controller venga chiamato una sola volta?
- e come posso evitare il 404?
Sono abbastanza nuovo per AngularJS e quindi posso fare supposizioni errate su cose o perdere cose ovvie, per favore illuminami.
+1. Vorrei anche aggiungere che in molti casi angolari si chiameranno più volte o talvolta inaspettati. Devi spostare la tua comprensione da imperativa a dichiarativa. Pensa css. Non ti interessa (normalmente) quante volte il browser ridisegna, riflette in base alle modifiche di stile/classe –
+1 Buon confronto con il ridisegno dei CSS. – Stewie
Grazie, sembra un po 'hacky ma forse non sono abituato al paradigma ridipinto;) – markus