#angularjs
#angularjs
Вопрос:
У меня есть форма, которая управляется с помощью AngularJS. Я использую выпадающий список ng-repeat для обновления значения скрытого поля. Все работает нормально, пока я не использую Chrome и не отправлю код, а затем не выполню
«возврат страницы / возврат на одну страницу»
Если я попытаюсь снова использовать выпадающий список, он обновит только модальное значение в инструкции печати, а не значение скрытого ввода.
<input type="hidden" name="postageId" value="{{intPostageId}}" ng-model="intPostageId" />{{intPostageId}}
{{intPostageId}} внешний ввод работает, но тот, что внутри, не обновляется
С благодарностью
Ответ №1:
По какой-то причине angular не обновляет скрытые входные значения с помощью ng-model. Вам нужно будет выполнить определенную директиву, чтобы заставить это работать.
Вам не нужна привязка значения, которая у вас есть, ng-модели будет достаточно.
module.directive('updateHidden', function () {
return function (scope, el, attr) {
var model = attr.ngModel;
scope.$watch(model, function (val) {
el.val(val);
});
};
});
Комментарии:
1. Я попробую это. Спасибо. Проблема, похоже, только в Chrome, и именно тогда я возвращаюсь с помощью go back. Приветствия
2. @super_ton вам не нужна привязка значения — ng-model будет достаточно
3. <тип ввода = «hidden» name =»postageId» ng-model=»intPostageId» update-hidden /> что-то вроде этого, похоже, работает с использованием вашего кода. Я новичок в этом….
4. Рад, что это сработало. Продолжайте, вы поймете, что Angular — это такая хорошая платформа, которая стоит начального обучения 🙂
5. похоже, это тоже решает мою небольшую проблему с Chrome!! удивительно!! извините, я не могу дать 1 — недостаточно репутации!! Я бы никогда этого не понял!!!
Ответ №2:
Я сам столкнулся с этой проблемой. Понятия не имею, почему это происходит, но и простой обходной путь, который я нашел для этого, — просто поменять скрытое поле на текстовое поле с display: none
<input type="text" name="postageId" value="{{intPostageId}}" style="display:none">