我在控制器中有这个:
var page = 2;
$($window).scroll(function () {
if($($window).scrollTop() == $(document).height() - $($window).height()) {
myService.addMore(page);
page++;
console.log("page: " + page);
}
});
滚动到页面底部时会运行此功能。然后,该函数使用页面值作为参数调用myService。 服务功能只是一个http请求,如下所示:
factory.addMore = function (page) {
$http({
method: "GET",
url: "url..." + page,
}).success....
}
每次向下滚动时,服务都会使用页面值生成一个http请求,并将一些数据打印到视图中。虽然页面变量每次都会增加1,但应该这样。
但是,如果通过向下滚动触发该功能,然后导航到网站上的其他页面,然后再使用滚动功能返回到页面,则会出现问题。
console.log输出:
所以现在突然间我似乎有两个这样的功能正在运行,这是一个问题。我怎样才能解决这个问题?每次返回时,页面值都应重置为2。
我使用ui路由器在状态之间切换。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
您正在将侦听器绑定到window对象。在单页面应用程序中持续存在状态。要么在状态重定向中取消绑定侦听器,要么将其绑定到在状态重定向中取消解析的元素(即状态模板中的某些内容)。