AngularJS: значение скрытых полей Chrome не обновляется после возврата страницы

#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">