2015-06-01 2 views
13

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

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

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

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

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

+0

какая версия Углового вы используете – chandu

+0

Вы пробовали линию, которую используете сейчас, без {{}}? – Guinn

+0

Привет, я использую 1.3.15, который, судя по ответу, который я видел в другом месте здесь, должен быть в порядке? И да @ Guinn Я пробовал это без фигурных скобок, и это не имело никакого значения. – user3407039

ответ

33

Я не думаю, что существует какая-либо директива 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.)

+0

Я действительно не знал, что эти условные утверждения будут работать вне директив ng. Благодаря! – user3407039

+0

{{...}} делает угловое вычисление любого выражения в фигурных скобках - попробуйте просто {{2 + 2}} или что угодно, и вы увидите. Если вы используете директивы, вам не нужны колышки. –

+0

Да, кажется, теперь вы говорите это -_- – user3407039

1

В HTML:

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

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

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

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

<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.

Смежные вопросы