异步执行 LightSwitch Javascript
Execute LightSwitch Javascript Asynchronously
我的 Lightswitch 应用程序中有一个 Back Button
,我需要将其直接 link 到特定屏幕。
linked 屏幕需要一个 ProjectID
值,我从您单击 Back
的页面提供该值。
The problem is that when I click back, I am brought to the right page but no records display until after a page refresh. I need to refresh the page AFTER the load is complete
我一直在搞乱 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()
功能。相当漂亮
我的 Lightswitch 应用程序中有一个 Back Button
,我需要将其直接 link 到特定屏幕。
linked 屏幕需要一个 ProjectID
值,我从您单击 Back
的页面提供该值。
The problem is that when I click back, I am brought to the right page but no records display until after a page refresh. I need to refresh the page AFTER the load is complete
我一直在搞乱 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()
功能。相当漂亮