2017-09-07 3 views
2

J'utilise un contrôle datepicker sur ma page qui est rendu via ng-si dépend d'une valeur de liste déroulante spécifique. Le problème auquel je suis confronté est puisque au moment du rendu, cette entrée datepicker ne fait pas partie de DOM, donc plus tard quand je change la valeur de dropdown, le contrôle datepicker ne fonctionne pas.AngularJS ng-if et DOM Compilation

Si j'utilise ng-show, je rencontre des problèmes dans les validations.

Des suggestions?

Merci.

+0

Quelle datepicker utilisez-vous ou est-ce que vous faites vous-même? Et avez-vous essayé d'utiliser la syntaxe ControllerAs? – MrWook

Répondre

0

Utilisation ng-show/ng-hide au lieu de ng-if, parce que la directive ng-if supprime ou reconstitue une partie de l'arbre DOM à partir d'une expression. Si l'expression affectée à ng-if évalue à une valeur false, l'élément est supprimé du DOM, sinon un clone de l'élément est réinséré dans le DOM.

Plus de détails. Veuillez vous référer à ce lien: what is the difference between ng-if and ng-show/ng-hide

+0

En cas de ng-show/hide, je dois gérer manuellement les validations, non? –

+0

@AliHassan Nope. 'ng-show' fonctionne aussi' ng-if'. Vous venez de mettre l'expression que vous avez mentionnée dans l'expression 'ng-if'. –

+0

Merci Ramesh, laissez-moi y jeter un coup d'œil. –

0

Essayez "$ scope.apply()" après le basculement de la variable ng-if.