我正在创建节点应用程序,但无法更新全局变量。
这是我的代码(ejs文件):
<% include ../partials/header %>
<div class="page container">
<div id="campgroundsRow" class="row">
</div> <!-- row end -->
<button id="loadMore">Load More</button>
</div> <!-- Container End -->
<% include ../partials/footer %>
<script>
var numGroundsToLoad = 1;
var numGroundsLoaded = 0;
loadCampgrounds(numGroundsLoaded, numGroundsToLoad);
function loadCampgrounds(numGroundsLoaded, numGroundsToLoad) {
var grounds = <%-JSON.stringify(campgrounds) %>
for(var i=numGroundsLoaded + 1; i<numGroundsLoaded + numGroundsToLoad; i++) {
//code to add grounds[i] to campgroundsRow div
}
numGroundsLoaded += numGroundsToLoad;
}
$("#loadMore").on("click", function() {
loadCampgrounds(numGroundsLoaded, numGroundsToLoad);
});
</script>
我遇到的问题是loadCampgrounds
功能实际上并未更新numGroundsLoaded
。因此,当我点击加载更多按钮(#loadMore
)时,它认为我正在添加ground[0].
我想要的是每次点击加载更多时,都会添加下一个地面。即,默认情况下会添加ground[0]
。然后加载更多,ground[1]
。然后加载更多,ground[2]
等等(假设现在有无限的理由)。
正如您所看到的,问题与范围和何时加载内容有关。
答案 0 :(得分:1)
因为您更新了局部变量。在这种情况下,要更新全局变量,您需要通过window.numGroundsLoaded
访问它。