2016-03-25 18 views
0

AngularJS ile başlıyorum ve onunla ilk sorunum var.AngularJS ile localStorage verileri nasıl kaydedilir?

localStorage'da nasıl kullanıcı adı ve parola bağlayabilir veya kaydedebilirim? Sayfayı yeniden yükledikten veya uygulamayı yeniden başlattıktan sonra formum boş.

ben bu eklentiyi kullanıyorum: 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> 

Denetleyici:

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

'dan "localStorageService.cookie.clearAll" olmalıdır değil mi? –

+0

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

+1

Yapmak istediğiniz şey, güvenlik açısından kötü bir fikirdir. Uygulamada, özellikle localStorage'da veya çerezde hiçbir zaman kullanıcı adını ve şifreyi ASLA saklamamalısınız. Kullanıcıyı giriş yapın ve ardından başvurabileceğiniz benzersiz bir oturum kimliği saklayın. Bu değerler bir veritabanına ait ve iyice şifreli. – MBielski

cevap

2

O localStorage .. mağaza kullanıcı kimlik bilgileri için gerçekten kötü bir uygulamadır Ama Ihtiyaçlarınız için çalışan bir JSBIN var ve çalışır .. için aşağı kaydırın JS kodu, JS

PS'in üstündeki kütüphaneyi içerdiğinden PS: js hatalarını ve uyarılarını yoksayın. Bunlar, yerel yerel depolama kitaplığından

+0

Çok teşekkürler. İşe yarıyor. Ama neden? Anlayamıyorum. Ng-submit ile bir form etiketi ekledim ve gönderme tipi için düğmeyi değiştirdim. Sorun hala vardı, ancak ng-controller = "SettingsCtrl" ekledikten sonra çalışıyor. Ama düşündüm de, modülde zaten var mı? – user3646958

+1

Denetleyiciyi, denetleyicinin ng-controller = "MyCtrl" olarak uygulanacağı DOM (html) öğesinin üzerine koymalısınız. Bu aslında denetleyicinin kapsamını tanımlar. Bu olmadan, fonksiyonlar ve modeller otomatik olarak uygulanmayacaktır. Yani her ikisini de yapmalısınız: 1) denetleyiciyi html 'a uygulayın 2) denetleyiciyi appModule.controller – AhsanAyaz

+0

olarak tanımlayın. Ancak denetleyici uygulamadan niçin ve {{test}} çalışır html üzerinde? Sorularım için üzgünüm. – user3646958

İlgili konular