Изменить значение входного заполнителя через модель?
Я пытаюсь изменить значение входного заполнитель из контроллера, но не могу понять, как.
input(type='text', ng-model='inputText', side='30', placeholder='enter username')
есть ли способ изменить атрибуты элемента модели?
4 ответа:
Вы можете связать с переменной в контроллере:
<input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" />
в контроллере:
$scope.somePlaceholder = 'abc';
принятый ответ все еще бросил ошибку Javascript в IE для меня (по крайней мере, для Angular 1.2). Это ошибка, но обходной путь заключается в использовании ngattr подробно на https://docs.angularjs.org/guide/interpolation
<input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" />
поскольку AngularJS не имеет директивных манипуляций DOM, как это делает jQuery, правильным способом изменения атрибутов одного элемента будет использование директивы. Через функцию link директивы у вас есть доступ как к элементу, так и к его атрибутам.
обертывая весь вход внутри одной директивы, вы все равно можете ввести методы ng-model через свойство контроллера.
этот метод поможет отделить логику ngmodel с заполнителем от контроллера. Если есть нет никакой логики между ними, вы можете определенно пойти, как сказал Вагнер Франсиско.