Нет определенного способа одобрения Sproutcore.Тем не менее я сделал что-то, что выглядит примерно так:
В 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;
}
});
Затем в 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.';
}
}
Я знаю, что пора, но янадеюсь, что это поможет вам или кому-то еще.
Если у вас есть дополнительные вопросы, посетите чат-комнату IRC по адресу #sproutcore или ознакомьтесь со списком рассылки sproutcore@googlegroups.com.
.