Esiste un modo per ereditare l'ambito genitore mentre estende lo con gli attributi passati?Attributi dell'ambito della direttiva senza ambito isolato in AngularJS
Voglio passare i parametri a una direttiva riutilizzabile direttamente dal modello senza dover modificare il DOM nella funzione di collegamento.
Ad esempio:
<form-input icon="icon-email" label="email" ng-model="data.input"></form-input>
Per una direttiva come questa:
<div class="form-group">
<label>{{label}}</label>
<div class="input-group">
<div class="{{icon}}">@</div>
<input class="form-control" placeholder="Email" ng-model="mail.email">
</div>
</div>
ng-modello è nel campo di applicazione genitore, che controlla un intero modulo in questo caso, ma non credo è necessario memorizzare gli attributi di stile nel controller.
C'è un modo per passare i parametri direttamente nel modello senza creare un ambito isolato?
Immagino che non ci sia modo di aggirare il collegamento. Il tuo plunk è proprio quello di cui avevo bisogno. – BarakChamo
Ho rimosso la parte "$ scope. $ Eval" e ho utilizzato il valore fornito direttamente in "$ attributes", poiché mi aspetto una stringa e non voglio che gli utenti della direttiva debbano avvolgere tutto con le virgolette. È una cattiva pratica? Grazie per la soluzione, a proposito! – eitanfar
@eitanfar Per passare in un letterale, hai ragione - non è necessario chiamare '$ scope. $ Eval ', poiché non c'è nulla da interpolare. http://stackoverflow.com/a/15671573/3123195 ha una buona spiegazione di alto livello e link ai documenti. –