J'essaie de changer la valeur de l'espace réservé d'entrée à partir d'un contrôleur, mais je ne comprends pas très bien comment.
input(type='text', ng-model='inputText', side='30', placeholder='enter username')
Existe-t-il un moyen de modifier les attributs d'élément d'un modèle?
Vous pouvez vous lier à une variable dans le contrôleur:
<input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" />
Dans le contrôleur:
$scope.somePlaceholder = 'abc';
La réponse acceptée a toujours généré une erreur Javascript dans IE pour moi (pour Angular 1.2 au moins). C'est un bogue, mais la solution de contournement consiste à utiliser ngAttr en détail sur https://docs.angularjs.org/guide/interpolation
<input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" />
Comme AngularJS n’a pas de directives DOM manipulées comme jQuery, une méthode appropriée pour modifier les attributs d’un élément consiste à utiliser directive. Grâce à la fonction de liaison d’une directive, vous avez accès à la fois à l’élément et à ses attributs.
En encapsulant votre entrée entière dans une directive, vous pouvez toujours introduire les méthodes de ng-model via la propriété controller.
Cette méthode aidera à découpler la logique de ngmodel avec un espace réservé du contrôleur. S'il n'y a pas de logique entre eux, vous pouvez certainement y aller comme l'a dit Wagner Francisco.
Comme disait Wagner Francisco, (dans JADE)
input(type="text", ng-model="someModel", placeholder="{{someScopeVariable}}")`
Et dans votre contrôleur:
$scope.someScopeVariable = 'somevalue'