2011-07-06 4 views
1

내가 사용자 이름과 비밀번호를 기억하기위한 로컬 저장소와 모델을 만든 게재 계속 사용자가 사용자 이름과 비밀번호를 저장하려면이 기능이 호출됩니다 :삭제 된 기록은

function setLocalUsernameAndPassword(localUsername, localPassword, bStoreUsernameAndPassword) 
{ 
    removeLocalUsernameAndPassword(false); // Remove all previous inputs (Should just be one) 
    ToolbarDemo.stores.localsettingsstore.add({username: localUsername, password: localPassword, storeUsernamePassword: bStoreUsernameAndPassword}); 

} 

저장소가 자동로드 및 자동 저장으로 설정되어 있으므로 저장소에서 .sync()를 실행하는 데 nessecary이어서는 안됩니다. 사용자가 사용자 이름과 암호를 저장하지 않도록 선택하면

, 내가 호출하여 저장소에서 모든 레코드를 제거 :

function removeLocalUsernameAndPassword(bClearFields) 
{ 
    //ToolbarDemo.stores.localsettingsstore.removeAll(); 
    ToolbarDemo.stores.localsettingsstore.each(function(record) 
    { 
     console.log("Removing " + record.data.username); 
     ToolbarDemo.stores.localsettingsstore.remove(record); 
    }); 

    if(bClearFields) 
    { 
     Ext.getCmp("usernameField").value = ""; 
     Ext.getCmp("passwordField").value = ""; 
     Ext.getCmp("checkboxStoreUserInfo").checked = false; 
    } 

} 

나중에 내가 가게가 비어있는 것을 볼 수 있습니다,하지만 난 (페이지를 새로 고치면 다시 한 번 앱을 시작하십시오.) 모든 레코드가 저장되어있는 레코드와 함께 저장됩니다.

누구나 내가 제대로하지 못하는 것을 볼 수 있습니까?

미리 감사드립니다.

답변

1

나는 마침내 exactly the same problem을 가진 남자를 발견했다. 솔루션 :

"id"라는 이름의 필드를 추가하고 "int"를 입력해야합니다. 이렇게하면 sencha는 레코드를 삭제할 수 있습니다.

Ext.regModel('UserSettings', { 
    fields: [ 
     {name: 'id', type: 'int'}, 
     {name: 'username', type: 'string'}, 
     {name: 'password', type: 'string'}, 
     {name: 'storeUsernamePassword', type: 'boolean'} 
    ] 
}); 

이렇게 한 후에는 각 업데이트 후에 store.save()도 수행해야했습니다.