È possibile verificare se un dato attributo è presente in una direttiva, idealmente utilizzando l'ambito isolato o, nel peggiore dei casi, l'oggetto attributi.Verifica esistenza attributo nella direttiva angolare
Con una direttiva simile a questa <project status></project>
, voglio rendere condizionatamente un'icona di stato, ma solo se l'attributo status è presente.
return {
restrict: 'AE',
scope: {
status: '@'
},
link: function(scope, element, attrs) {
scope.status === 'undefined'
}
}
Idealmente, sarebbe legato direttamente allo scopo, in modo che potesse essere utilizzato nel modello. Tuttavia, il valore della variabile associata è non definito. Lo stesso vale per &
a lettura singola e =
attacchi a due vie.
So che è banalmente risolto aggiungendo un <project status='true'></project>
, ma per le direttive che userò frequentemente, preferirei non doverlo fare. (Validità XHTML, non è un problema).
So che l'hai menzionato, ma solo chiedendo - di d hai provato qualcosa come '" status "in attrs' e vedi che cos'è questa valutazione? – Ian
non è "@" un'associazione di testo unidirezionale passata alla direttiva? quindi scope.status dovrebbe essere il testo che legge 'true', purché si passi una variabile nella direttiva come
– SoluableNonagonQuando si specifica l'ambito come un oggetto come sopra, la direttiva crea un nuovo oggetto Scope che non eredita le proprietà da ambito genitore. Utilizzare invece scope: true per creare un nuovo ambito (con accesso alle proprietà dell'ambito padre), o scope: false per fare in modo che la direttiva usi l'ambito principale. È questo che stai chiedendo? Non ho proprio capito la tua domanda ... –