как сохранить данные в MD-dialog angular js

У меня есть страница с кнопкой «Дополнительные параметры». Нажав на это, я открываю md-диалог, который имеет много входных текстовых полей и полей. если я закрываю этот md-диалог и снова открываю его, нажав кнопку «Дополнительные параметры», данные не сохраняются. я имею в виду ввод, который был в текстовых полях и сбрасываются по умолчанию.

я хочу сохранить это в различных призывах.

<md-dialog-content>
  <div class="md-dialog-content">
      <div layout="column" layout-align="start">
        <div>
          <div class="md-title mainContent">Policy Title</div>
          <md-switch ng-model="switchval.component" ng-change="compSwitch(switchval.component)">
          </md-switch>
        </div>
        <div id="subContentID" layout="column" layout-align="start" class="subContent">
          <div layout="row" layout-align="start start">
             Policy
             <md-select ng-model="compClassPolicy" ng-change="compClass(compClassPolicy)" placeholder="Existing" required md-no-asterisk="false"
             style="margin: 0px;">
              <md-option value="USE_EXISTING">Google</md-option>
              <md-option value="USE_NEW">Amazon</md-option>
              <md-option value="USE_NEW_AND_EXISTING">Motorola</md-option>
            </md-select>
          </div>
          <div id="box">
          </div>
          <div id="addButtonComponent" align="center" style="display: none;">
            <md-button class="md-raised md-primary" ng-click="addTextGroupComponent()">Add</md-button>
          </div>
        </div>
      </div>
      <md-divider style="margin: 20px 0;"></md-divider>
    </div> </md-dialog-content>

1 ответ

  1. Вы можете использовать метод $rollbackViewValue() для отмены изменений, но я думаю, что это не намерение.

    $rollbackViewValue (); отмена обновления и сброс входных элементов
    значение для предотвращения обновления $modelValue, которое может быть вызвано
    ожидающее событие дебоша или потому, что входные данные ждут некоторого
    будущее событие.

    Если у вас есть вход, который использует ng-model-options для настройки debounced
    события или события, такие как размытие вы можете иметь ситуацию, где есть
    период, когда значение $viewValue не синхронизировано с ngModel
    $modelValue.

    В этом случае при попытке обновить
    ngModel $modelValue программно перед этими дебютировал / будущее
    события разрешились / произошли, потому что Angular грязная проверка
    механизм не в состоянии сказать, изменилась ли модель на самом деле
    или нет.

    Перед вызовом метода $rollbackViewValue()
    программно изменяя модель входного сигнала который может иметь такие
    события в ожидании. Это важно для того чтобы убеждаться что входной сигнал
    поле будет обновлено с новым значением модели и любым ожидающим
    операции отменяются.

    Обычный вариант использования-скопировать модель, при необходимости сохранить модель и, если все в порядке, обновить модель.

    _this = this;
    this.edit = function() {
        this.modelToEdit = angular.copy(this.originalModel);
    }
    
    this.save = function () {
        service.save(modelToEdit).then(function(savedModel) {
            _this.originalModel = savedModel;
        });
    }
    

    Или можно создать резервную копию модели и восстановить ее при отмене

    _this = this;
    this.edit = function() {
        this.backupModel = angular.copy(originalModel);
    }
    
    this.cancel = function() {
        this.originalModel = this.backupModel;
    }
    this.save = function() {
        service.save(this.originalModel).then(function(data) {}, function(error) {
           _this.originalModel = _this.backupModel;})
    
    }
    

    Подробнее вы можете посмотреть здесь .