Вы можете использовать ng-attr
директивы, чтобы установить значение замещающего динамически, чтобы проверить форму элемент pristine
или вам не нужно, чтобы поместить это поле внутри form
&, то вы можете легко проверить $pristine
свойство этого элемента формы, как myForm.price.$pristine
.
Markup
<form name="myForm">
<input type="number" id="pricefield" min="0" name="price" ng-model="test.value"
ng-attr-placeholder="{{myForm.price.$pristine ? 'Some Value': 'Default Value'}}" required/>
</form>
Demo Plunkr
Update
Я хотел бы предложить, чтобы иметь одну директиву, которая изменит скрыть $viewValue
на начальной загрузки & покажет заполнитель. Директива будет иметь контроллер над значением отображения с помощью $formatters
на ngModelControlller
разметке
<input type="number" custom-dir id="pricefield" min="0" name="price"
ng-attr-placeholder="{{myForm.price.$pristine ? 'Initial Placeholder': 'After change Placeholder'}}"
ng-model="test.value" required/>
Директива
app.directive('hideInitialLoad', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
var initalHide = true;
//format text going to user (model to view)
ngModel.$formatters.push(function(value) {
console.log(attr.min > value)
if (initalHide){
initalHide = false;
return undefined;
}
return value;
});
}
};
});
Updated Demo
Привет, @Pankaj Parkar, спасибо за это. однако, во время инициализации мне нужно будет установить ng-model в 0, и если я это сделаю, это не будет работать. (скрыть начальное значение и отобразить местозаполнитель) – WABBIT0111
@ WABBIT0111 вы могли бы установить 'min =" 1 "' ..will work http://plnkr.co/edit/DzC5XyzXCmAGhTJgROCk?p=preview –
nope, вы можете иметь 0, так что min не может быть 1 – WABBIT0111