2010-06-27 5 views

Répondre

1

Je suppose que par données, vous voulez dire des enregistrements. Dans ce cas, vous pouvez définir la propriété 'commitRecordsAutomatically' de MyApp.store sur True. Ou si vous pouvez détecter que l'utilisateur quitte votre page, vous pouvez alors appeler MyApp.store.commitRecords().

3

Il n'y a pas de manière spécifique approuvée par Sproutcore. Cependant, je l'ai fait quelque chose qui ressemble à peu près comme ceci:

Dans core.js

MyApp = SC.Object.create({ 

    // ... 

    storeIsDirty: function(){ 
    var statuses = this.store.statuses, storeKey; 
    for(storeKey in statuses){ 
     if (statuses[storeKey] & SC.Record.DIRTY) return YES; 
    } 
    return NO; 
    }, 

    storeIsBusy: function(){ 
    var statuses = this.store.statuses, storeKey; 
    for(storeKey in statuses){ 
     if (statuses[storeKey] & SC.Record.BUSY) return YES; 
    } 
    return NO; 
    } 

}); 

Puis, en main.js

window.onbeforeunload = function(){ 
    var dirty = MyApp.storeIsDirty(), 
    busy = MyApp.storeIsBusy(); 

    if (dirty || busy) { 
    // User will be prompted with the return value 
    return 'You have unsaved changes and will lose them if you continue.'; 
    } 
} 

Je sais que ce retard, mais j'espère que vous aide ou quelqu'un autre.

Si vous avez d'autres questions, visitez le salon de discussion IRC à l'adresse #sproutcore ou consultez la liste de diffusion à l'adresse [email protected]

Questions connexes