在做我的MVC任务时,我碰到不得不告诉JavaScript什么数据准备好了。
我试图通过将模型分配给视图并在JavaScript中调用@Model.property_name
来实现此目的,但是似乎每次调用@Model.property_name
时,该bool的值都不会更新,即使该模型确实在后台对其进行了更新。
代码如下:
型号
public class saveModel
{
public bool dataReady;
// Members
public void SaveRoute()
{
// Stuff
// Finally, changing the bool
dataReady = true;
}
}
查看
// Stuff
<script>
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function checkDataReady()
{
var ready = @Json.Encode(Model.dataReady);
while (ready != true) {
console.log(ready);
console.log("Sleeping");
await sleep(3000);
ready = @Json.Encode(Model.dataReady);
}
// When data is ready
showDataMined();
}
// On page-load, check if data is ready
document.addEventListener('DOMContentLoaded', function() {
checkDataReady(); });
</script>
我希望当模型将dataReady
属性更改为true时,下次遍历checkDataReady()
中的循环时,会将var ready分配为true,但是,它总是分配为false。
我确保确实将布尔值分配为true,所以我很困惑。