2016-03-25 8 views
0

私はAngularJSで始まり、最初の問題があります。AngularJSを使用してlocalStorageにデータを保存する方法は?

localStorageでユーザ名とパスワードをバインドまたは保存するにはどうすればよいですか?私のフォームは、ページをリロードしたり、アプリケーションを再起動した後は空です。

私はこのプラグインを使用しています:https://github.com/grevory/angular-local-storage

HTML:

<input type="text" name="cy_username" id="cy_username" ng-model="username"> 
<input type="password" name="cy_password" id="cy_password" ng-model="password"> 
     <button class="button button-block button-positive icon ion-edit icon-left" ng-click="saveSettings()">Einstellungen 
      speichern 
     </button> 
     <button class="button button-block button-assertive icon ion-trash-b icon-left" ng-click="resetSettings()"> 
      Einstellungen löschen 
     </button> 

コントローラー:

angular.module('starter.controllers', ['LocalStorageModule']) 

    .controller('SettingsCtrl', function ($scope, localStorageService) { 
     $scope.username = localStorageService.get('username'); 
     $scope.password = localStorageService.get('password'); 


     $scope.saveSettings = function() { 
      if (localStorageService.isSupported) { 
       localStorageService.set('username', $scope.username); 
       localStorageService.set('password', $scope.password); 
      } else { 
       console.error('localStorage is not supported!'); 
      } 
     }; 

     // doesn't work, nothing happens 
     $scope.resetSettings = function() { 
      $scope.username = ''; 
      $scope.password = ''; 
      localStorageService.clearAll(); 
     }; 
    }); 
+0

'localStorageService.cookie.clearAll'ではありませんか? –

+0

https://github.com/grevory/angular-local-storage#clearall – user3646958

+1

あなたがしたいことは、セキュリティの観点からは悪い考えです。ユーザー名とパスワードの両方をアプリケーションのどこにも格納しないでください。特にlocalStorageまたはcookieを使用しないでください。ユーザーをログインして、参照できる一意のセッションIDを保存します。これらの値はデータベースに属し、完全に暗号化されています。 – MBielski

答えて

2

それはのlocalStorage .. に格納し、ユーザーの資格情報には本当に悪い習慣があるしかし、私はJSBINあなたの要件のために働いて、それが動作します.. JSコードはJSの上にライブラリを含めたものです

PS:jsエラーと警告を無視してください。それらは角ローカルストレージライブラリからです

+0

ありがとうございました。できます。しかし、なぜ?理解できません。 ng-submitでフォームタグを追加し、ボタンをsubmit-typeに変更しました。問題はまだ残っていましたが、ng-controller = "SettingsCtrl"を追加した後に動作します。しかし、私はそれが既にモジュールに設定されていると思った? – user3646958

+1

コントローラーをng-controller = "MyCtrl"として適用するDOM(html)要素にコントローラーを配置する必要があります。それは実際にコントローラのスコープを定義します。それがなければ、関数とモデルは自動的に適用されません。 1)コントローラーをhtmlに適用する 2)コントローラーをappModule.controllerとして定義する – AhsanAyaz

+0

コントローラーを適用せずにと{{test}}を動作させる理由on html?私の質問には申し訳ありません。 – user3646958

関連する問題