AngularJS: ng-placeholder не работает

У меня есть следующий элемент ввода html, который я хочу изменить заполнитель в зависимости от того, что удерживается в моей модели пользователя.

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

Я даже пробовал этот метод, который, как говорят, работал в предыдущих версиях angular, но не удался.

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

В настоящий момент мой заполнитель просто выглядит совершенно пустым. Я также знаю, что AdAccount корректно держит true/false, потому что он используется в другом месте формы с ng-show.

Ответ 1

Я не думаю, что существует какая-либо директива ngPlaceholder. Попробуйте изменить свой код на:

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

То есть, измените ng-placeholder на просто placeholder, и все должно работать нормально.

(Обратите внимание также на самозакрывающуюся косую черту, если вам нужно соответствовать действующему XHTML.)

Ответ 2

Вы можете попробовать это:

<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- будет работать с любым атрибутом HTML.

Ответ 3

В HTML:

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

В контроллере:

$scope.doctorname = $scope.doctorinfo.name;