2017-01-13 6 views
0

"고급 옵션"이있는 페이지가 있습니다. 그것을 클릭하면 md 대화 상자가 열리고 많은 입력 텍스트 상자와 필드가 있습니다. 이 md 대화 상자를 닫고 "고급 옵션"을 다시 클릭하면 데이터가 지속되지 않습니다. 나는 입력란에 있었고 기본값으로 재설정 된 입력을 의미합니다.md-dialog 각도 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

어쩌면 당신은이 – Shinigami

답변

0

변경 사항을 되돌리려면 $ rollbackViewValue() 메소드를 사용할 수 있지만 의도하지는 않습니다.

$ rollbackViewValue(); 업데이트를 취소하고 입력 요소의 값을 재설정하여 보류중인 디 바운스 이벤트 또는 입력이 일부 미래 이벤트를 기다리고 있기 때문에 발생할 수있는 $ modelValue 로의 업데이트를 방지하십시오. 당신이 디 바운스 이벤트 또는 기간 가있는 곳에 당신이 상황을 가질 수 블러 등의 이벤트를 설정하는 NG-모델 옵션을 사용하는 입력이있는 경우

$ viewValue는 ngModel의 와 동기화를 벗어나면 $ modelValue. 각도의 더러운 확인 메커니즘이 모델 여부를 알 수 없기 때문에 당신이이 디 바운스/미래 이벤트가 해결 한 프로그래밍하기 전에 ngModel의 $ modelValue를 업데이트하려고하면이 경우

, 당신은 어려움에 실행할 수/발생 실제로 변경되었습니다 .

이벤트가 보류중인 입력 모델을 프로그래밍 방식으로 변경하기 전에 $ 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; 
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;}) 

} 

을 취소 할 때 복원합니다.

+0

에 대해 localStorage를 사용할 수 있습니다. md-switch를 유지할 수 있지만 컨테이너를 입력 할 수는 없습니다. – Pradheep