Tra le varie opzioni di una direttiva custom in AngularJS, c'è anche quella che ci permette di specificare lo scope. Se non specifichiamo questa opzione, la direttiva prende in input lo scope del suo contenitore. Questo significa che se abbiamo una view che ha uno scope con le proprietà Nome e Cognome, queste proprietà saranno disponibili per default anche nella direttiva.
Sebbene questa funzionalità sia comoda, far utilizzare a una direttiva lo scope del contenitore implica che la direttiva abbia conoscenza del proprio contenitore e per l'incapsulamento questa non è una cosa positiva. La cosa migliore è che la direttiva abbia un proprio scope e che il padre lo valorizzi.
Per fare questo dobbiamo dichiarare le proprietà nello scope come nell'esempio.
.directive('myDir', function () { return { scope:{ Nome: '@Nome', Cognome: '@Cognome' } }; });
A questo punto, Nome e Cognome possono essere impostate tramite attributo nella dichiarazione della direttiva come nel prossimo esempio.
<my-dir nome="{{parentScopeNome}} cognome="{{parentScopeCognome}}"></my-dir>
In questo caso, stiamo impostando le proprieta Nome e Cognome rispettivamente con i valori della proprietà parentScopeNome e parentScopeCognome dello scope contenitore.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Configurare automaticamente un webhook in Azure DevOps
Gestire progetti .NET + React in .NET Aspire
Recuperare l'ultima versione di una release di GitHub
Creare una libreria CSS universale - Rotazione degli elementi
Gestire i dati con Azure Cosmos DB Data Explorer
Eliminare record doppi in Sql Server
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Ottimizzare le performance usando Span<T> e il metodo Split
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare l'espressione if inline in una pipeline di Azure DevOps