これは HTML クライアント用ですよね?それが事実であると仮定します:
saveChanges() は非同期操作なので、次のようにします。
myapp.activeDataWorkspace.ProjectHandlerData.saveChanges().then(function () {
window.location.reload();
});
そうすれば、画面をリロードする前に、変更の保存が完了するまで待機します。
ただし、よりスムーズな方法があります。少なくともユーザーの観点からは、よりスムーズです。編集画面では、Save メソッドを省略し、LightSwitch に処理させます。ユーザーが保存をクリックすると、編集画面が閉じられ、以前の場所に戻ります。showScreen メソッドの options パラメータを使用して、その動作を変更できます。
編集画面を呼び出すメソッドを次のように変更します。
myapp.showEditProject(screen.Project, {
afterClosed: function (editScreen) {
myapp.showViewProject(editScreen.Project);
}
});
このようにして、編集画面が閉じられ、変更の保存操作が処理された後、アプリケーションは最近編集されたアイテムの詳細ビュー画面に自動的に移動します。
代わりに、新しいエンティティを追加した後に参照画面を更新したい場合:
myapp.showAddEditProject(null, {
beforeShown: function (addEditScreen) {
addEditScreen.Project = new myapp.Project();
},
afterClosed: function () {
screen.Projects.load();
}
});
これらの 2 つのオプション beforeShown と afterClosed は、アプリケーションのナビゲーションに影響を与える非常に優れた機能を数多く提供します。