0

extjs4 MVCで作業していますが、ローカルストレージを使用してデータを保存するときに問題が発生し、プロキシタイプをajaxからlocalStorageに動的に変更します。

データをlocalstorageに設定した後、エラーUncaught TypeErrorが発生しました:undefinedは関数ではありません。

私のモデル:

Ext.define('Am.model.sn.UserModel',{
    extend: 'Ext.data.Model',
    //idproperty:'userId',//fields property first position pk. 
        fields: ['userId','firstName','middleName','lastName','languageId','primaryEmail','birthDate','password','securityQuestionId','securityQuestionAnswer','isMale','creationTime','ipAddress','confirmationCode','userStatusId']

}); 

私のコントローラー:

Ext.define('Am.controller.sn.UserController1',
{
    init:function()
    {
        console.log('Initialized Users! This happens before the Application launch function is called'); 
        this.control(
        {
            ...
        });
    },

    remeberMe : function()
    {
        console.log("check box selected");
        var email=this.getUserName().getValue();
        var password=this.getPassword().getValue();
        console.log("email="+email);
        var objCheckBox=Ext.getCmp('checkbox');
        if(objCheckBox.getValue()==true)

        {
            window.localStorage.clear();

            // Here I am getting error Uncaught TypeError: undefined is not a function 
            var lsProxy = new Ext.data.proxy.LocalStorage({
                id: 'localp',
                type:'localstorage',                
            });

            var modelObject = Ext.ModelManager.create(
            {
                primaryEmail:email,
                password: password,
                proxy:lsProxy
            }, 'Balaee.model.sn.UserModel');

            modelObject.setProxy(lsProxy);
            modelObject.save();
        } else {
            console.log("check box is not selected");
        } 
    },
});

提案をお願いします...

4

1 に答える 1

1

まず、コードを正しく理解していれば、ユーザーとそのパスワードをクライアント側に読み込んでいます。誰もがこのデータを(マウスを数回クリックするだけで)見ることができるため、これは大きなセキュリティリスクです。

第二に、設定LocalStorageがありませんtype

第三に、この行で実際にエラーが発生している場合(呼び出しスタックの一部のサブ行ではない場合):

var lsProxy = new Ext.data.proxy.LocalStorage({

Ext.data.proxyそれよりも、範囲内にないということだけが可能です。

この構成をコントローラーに追加してみてください。

requires: ['Ext.data.proxy.LocalStorage'],

何が起こるか教えてください。

于 2013-03-06T23:04:10.303 に答える