原文网址:https://www.youyong.top/article/1158d20d4714
用window.onscroll 做滚动事件,在这个方法里,更改了一些变量,可前台怎么也输不出来,之前用window.onscroll 做的滑动到底部,自动加载分页是好的呀,怎么一个变量就不行了?最后终于弄明白了。
原文网址:https://www.youyong.top/article/1158d20d4714
用window.onscroll 做滚动事件,在这个方法里,更改了一些变量,可前台怎么也输不出来,之前用window.onscroll 做的滑动到底部,自动加载分页是好的呀,怎么一个变量就不行了?最后终于弄明白了。
原文网址:https://www.youyong.top/article/1158d20d4714
我们知道angularjs 提供了$apply方法,平常都是自动更新
为什么还需要$apply那?
可见肯定有不能自动更新的时候,那就需要手动调用$apply。
那我们到底什么时候需要去调用apply()方法呢?
情况非常少,实际上几乎我们所有的代码都包在scope.apply()里面,像ng−click,controller的初始化,http的回调函数等。在这些情况下,我们不需要自己调用,实际上我们也不能自己调用,否则在apply()方法里面再调用apply()方法会抛出错误。 如果我们需要在一个新的执行序列中运行代码时才真正需要用到它,而且当且仅当这个新的执行序列不是被angularjs的库的方法创建的,这个时候我们需要将代码用scope.apply()包起来
回到我的情况:
之前我用window.onscroll 做自动加载下一页的时候,是用$http获取的数据,所以数据就更新了
而这次改变变量的时候,是被window.onscroll 包裹着,window.onscroll 不是angularjs创建的,所以angularjs就没有去更新变量。
改成如下:
window.onscroll = function () {
$scope.$apply(function(){
$scope.pageNo ++;
});
}
作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。
共 0 条留言
iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评
资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样
看片要当心了!色站不只掏空你,还可能掏空你的电脑 | 网页中可能包含JS挖矿机脚本!!!
说说Javascript的闭包(Closure)是怎么回事?
ajax返回的http status是200 没有进success方法 却进入了error方法?
手机扫一扫
分享文章