2011-12-22 22 views
1

ログインページにユーザー名とパスワードのテキストフィールドを持つフォームがあります。今、ユーザーがアカウントを登録すると、彼をUserモデルに追加したいと思います。彼がログインするとき、Senchaアプリに入るためにユーザー名とパスワードの組み合わせが正確かどうかをチェックする必要があります。ローカルストレージからログイン資格情報を確認するSencha

ログイン/パスコンボを確認する方法についてはわかりません。誰か助けて!ここに私のコードです。

モデル:

App.models.Users = Ext.regModel('Expense',{ 

fields : [ 
    { name : 'id', type : 'integer'}, 
    { name : 'email', type : 'string'}, 
    { name : 'pass', type : 'string'} 
], 

validations : [ 
    { name : 'email', type : 'presence', message : 'cannot leave field blank'}, 
    { name : 'pass', type : 'presence', message : 'cannot leave field blank'} 
], 

proxy : { 
    type : 'localstorage', 
    id : 'user-creds' 
} 
}); 

ストア:

App.stores.User = new Ext.data.Store ({ 
    model : 'Users', 
    autoLoad : true, 
    autoSave : true 
}); 

フォームパスワードのXTYPE電子メールの "テキストフィールド"、および "PASSWORDFIELD" で、基本的なものです。

フォームに入力された詳細がlocalstorage ???に保存されているものと一致することを確認するにはどうすればよいですか?

答えて

4

ログインするためにボタンをタップすると、ストアに入力されたメールアドレスを検索する必要があります。

App.stores.User.findRecord('email', < the value entered on the form >) ; 

このメソッドは、一致するものが見つかるとレコードを返します。レコードを取得したら、レコードのパスワードがフォームに入力されたパスワードと一致しているかどうかを確認できます。

Refer to Store in the Sencha Touch docs

更新:

あなたはMVCパターンを従っていると仮定すると...

は次のものが必要です。

  1. テキストフィールドをFormPanel
  2. コントローラに
ビューで

は、コントローラにログインボタン派遣:あなたのコントローラで

this.loginButton = new Ext.Button({ 
     text: 'Login', 
     ui: 'action', 
     handler: function() { 
      Ext.dispatch({ 
       controller: App.controllers.loginController, 
       action: 'login' 
      }); 
     }, 
     scope: this 
    }); 

は、コードは、フォームの値を取得します。

'login': function (options) { 

    var formDetails = App.views.loginView.getRecord(); 

    var store = Ext.StoreMgr.get('users'); 
    var record = store.findRecord('username', formDetails.get('username'), 0, false, true); 

    if (record != null) { 

     if (formDetails.get('password') == record.get('password')) { 
     // valid login 
     } else { 
     // wrong password 
     }   

    } else { 
     // username doesn't exist 
    } 

} 

私はこのことができます願っています。

+0

レコードのパスワードがフォームのパスワードと一致するかどうかを確認するにはどうすればよいですか?で、どのようにフォームに返されたデータにアクセスするのですか?私はドキュメントを検索しましたが、何も見つかりませんでした:( – SashaZd

関連する問題