2017-01-13 5 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への更新を防ぐために、入力要素の 値をリセットしてリセットします。

あなたは、このようなぼかしなどデバウンス イベントやイベントを設定するために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

に使うことができます。私はmd-switchを持続できるが、コンテナは入力できません。 – Pradheep

関連する問題