Fondamentalmente, come posso ascoltare i cambiamenti in un'espressione all'interno di una direttiva?Osservare un'espressione dall'interno di una direttiva
Sto utilizzando la non documentata ng-required
richiedere condizionalmente un certo campo:
<input type="checkbox" ng-model="partner" checked />
<input ng-model="partnerName" placeholder="required" ng-required="partner" />
Questa grande opera (here's the Plunkr). L'unico problema è che mantiene il testo "richiesto" placeholder
, indipendentemente dal fatto che sia effettivamente necessario.
Così, ho deciso di creare la mia direttiva. Ecco come dovrebbe funzionare:
<input ng-placeholder="{ 'required': partner }" />
L'idea è simile a quella di angolare ng-class
, ma non ho modo per ottenere questo risultato. Ecco quello che ho finora:
app.directive('ngPlaceholder', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
console.log(scope.$eval(attrs.ngPlaceholder));
}
}
});
che registra un oggetto bello che posso usare per determinare il valore placeholder
:
{ required: true }
ma come faccio poi agganciare nel ciclo $digest
/$apply
aggiornare l'attributo placeholder
ogni volta che cambia partner
?
Un suggerimento: non usare prefisso ng poiché è un angolars, a meno che non si sappia che in una versione futura implementeranno ng-placeholder con la stessa sintassi –
Grazie! È vero. Comunque uso solo il codice del post originale. – maxisam