2017-01-13 11 views
0

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

Я хочу сохранить это через разные вызовы.

<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> 
+0

Возможно, вы можете использовать localStorage для этого – Shinigami

ответ

0

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

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

Если у вас есть вход, который использует нг-модель-опции для настройки противодребезговой защиты события или событий, таких как размытие вы можете иметь ситуацию, когда есть период, когда $ 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;}) 

} 

Для более подробной информации вы можете увидеть this.

+0

. Я мог бы сохранить md-переключатель, но не вводить контейнер. – Pradheep