web-dev-qa-db-fra.com

AngularJS: ng-placeholder ne fonctionne pas

J'ai l'élément d'entrée HTML suivant dont je veux changer l'espace réservé en fonction de ce qui est contenu dans mon modèle utilisateur.

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" ng-placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}">

J'ai même essayé cette méthode qui aurait fonctionné dans les versions précédentes d'angular, mais sans succès.

ng-placeholder="user.AdAccount == true && 'Username' || 'AD Login'" 

Pour le moment, mon espace réservé apparaît complètement vide. Je sais également que AdAccount contient correctement true/false car il est utilisé ailleurs sur le formulaire avec ng-show.

16
user3407039

Je ne pense pas qu'il y ait de directive ngPlaceholder. Essayez de changer votre code pour:

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}" />

Autrement dit, changez ng-placeholderen juste placeholder, et tout devrait bien fonctionner.

(Notez également la barre oblique à fermeture automatique si vous devez vous conformer à un XHTML valide.)

43
Oskar Lindberg

Vous pouvez essayer ceci:

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" ng-attr-placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}">

ng-attr- fonctionnera avec n'importe quel attribut HTML.

12
Hussain

En HTML:

<input type="text" placeholder="{{doctorname ? doctorname : 'Dr. your name'}}"
       class="editable-class" ng-model="doctor.name" readonly/>

Dans le contrôleur:

$scope.doctorname = $scope.doctorinfo.name;
1
Abhishek Saxena