Я создаю (через Jade + Express.js + Node.js) страницу HTML, где я устанавливаю value
элемента input[text]
. Однако, даже если это значение установлено правильно (проверено путем просмотра исходного кода, Ctrl + U в FF), интерфейс показывает пустое текстовое поле, а при проверке элемента в FF отображаются дополнительные классы AngularJS, добавленные к этому элементу input[text]
.Почему AngularJS добавляет дополнительные классы к серверному продукту?
Соответствующая строка в шаблоне Джейд:
input(type="text", class="form-control", tabindex=1, id="episodeVal", ng-model="epName", value="#{epName}")
Выход из Джейд, генерируется с помощью Node.js (который так же, как в ожидании):
<input type="text" tabindex="1" id="episodeVal" ng-model="epName" value="Arbit" class="form-control">
"Компьютерной" (правильное слово?), показанный элементом «Inspect element» Firefox (это показывает дополнительные классы AngularJS):
<input tabindex="1" id="episodeVal" ng-model="epName" value="Arbit" class="form-control ng-pristine ng-valid ng-touched" type="text">
Почему AngularJS добавляет эти дополнительные классы? Правильно ли я полагаю, что это то, что мешает браузеру показывать value
набор для input[text]
?
Пожалуйста, дайте мне знать, если потребуется дополнительная информация.
Update 1: Просто заметила, что форма вшита также имеет дополнительный ng-pristine
и ng-valid
, примененный к нему) и FF
Я не устанавливаю значение '$ scope.epName' ни для чего. Как я могу получить 'input [text]' 's' value' для отображения? Я не могу установить значение '$ scope.epName' на сервере ... – markvgti
Поскольку ng-model используется для поддержки двухсторонней привязки, вам нужно инициализировать' epName' со значением, которое вы хотите показать.Он не может быть инициализирован со значением свойства ввода. – Chandermani