[英]Execute LightSwitch Javascript Asynchronously
我的Lightswitch應用程序中有一個“ Back Button
,需要直接鏈接到特定屏幕。 鏈接的屏幕需要一個ProjectID
值,該值可以從您單擊“ Back
的頁面上獲得。
問題是,當我單擊返回時,將帶到正確的頁面,但是直到刷新頁面后才會顯示任何記錄。 加載完成后,我需要刷新頁面
我一直在弄麻煩setTimeout
和setInterval
,但是沒有運氣。 可以在單擊按鈕后完成此操作,還是應該完全使用其他導航方法?
使用setTimeout
代碼(不會向后導航):
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
showDetails = function () {
setTimeout(function () {
window.location.reload(true);
}, 0)
}
window.location.reload(true);
};
向后導航但需要刷新才能顯示數據的代碼:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail), function () {
}//Need to execute reload AFTER show screen has completed
};
您可能會注意到我已注釋掉widow.history.back();
...這在我的應用程序的第一次迭代中有效,但是現在有兩種不同的方式可以登陸頁面,因此歷史記錄不可靠
不知道我以前怎么沒得到這個..
BobbyJ的回應讓我想到了commitChanges
,這讓我想到了跳過JavaScript技巧,並使用已經擁有的東西。
此代碼有效:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail).then(function(){
myapp.commitChanges()
}).then(function () {
window.location.reload(true);//Need to execute reload AFTER show screen has completed
})
};
這就是我實際需要的:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail).then(function(){
window.location.reload(true);
})
};
僅利用.then()
功能。 很漂亮
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.