Je veux m'assurer que les données sont sauvegardées dans mon application sproutcore avant qu'un utilisateur ne quitte la page. Quelle est la meilleure façon de faire cela dans Sproutcore?Quelle est la bonne façon de détecter window.unload dans sproutcore
2
A
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
- 1. Quelle est la bonne façon de rediriger?
- 2. Quelle est la bonne façon d'assombrir l'écran?
- 3. Quelle est la bonne façon d'initialiser HRESULT?
- 4. Quelle est la bonne façon de fork() dans FastCGI?
- 5. Quelle est la bonne façon de gérer la version d'assemblage?
- 6. Quelle est la bonne façon d'inclure un email dans Javadoc?
- 7. Quelle est la bonne façon de détecter tous les ports série disponibles sur Windows?
- 8. Quelle est la meilleure façon de détecter la couleur blanche?
- 9. Quelle est la bonne façon de reconstruire l'index de Lucene
- 10. Quelle est la bonne façon de sauvegarder les blobs ZODB?
- 11. Quelle est la bonne façon de s'associer avec un ABPerson?
- 12. Quelle est la bonne façon d'utiliser les URL de Cakephp?
- 13. Quelle est la bonne façon de relier 2 objets javascript?
- 14. Quelle est la bonne façon de gérer les extensions d'image?
- 15. Quelle est la bonne façon de publier un UIWebView?
- 16. Django vote: quelle est la bonne façon de balises annexant
- 17. Quelle est la bonne façon de charger un ListBox?
- 18. Quelle est la bonne façon de gérer plusieurs redirections automatiques?
- 19. Quelle est la bonne façon d'écrire la méthode 'Get'?
- 20. Quelle est la bonne façon de traiter les permissions?
- 21. Quelle est la bonne façon d'écrire cette liste de compréhension?
- 22. Quelle est la bonne façon de tester UnitEngines.Engines.FindView?
- 23. Quelle est la bonne façon de disposer d'une fenêtre WPF?
- 24. C#: Quelle est la bonne façon d'échanger les contrôles Winform?
- 25. Quelle est la bonne façon d'encapsuler [NSString stringWithFormat:]?
- 26. Quelle est la bonne façon d'écrire ce code?
- 27. Quelle est la bonne façon d'amorcer Drupal avec Kohana 3?
- 28. Quelle est la bonne façon d'obtenir un compte sur CPAN?
- 29. Quelle est la bonne façon d'appeler le temporisateur ElapsedEventHandler
- 30. Django: Quelle est la bonne façon d'obtenir l'adresse IP demandeuse?