angularjs 改了变量 前台数据不更新

赞赏 2016-12-09

用window.onscroll 做滚动事件,在这个方法里,更改了一些变量,可前台怎么也输不出来,之前用window.onscroll 做的滑动到底部,自动加载分页是好的呀,怎么一个变量就不行了?最后终于弄明白了。


更新的方法

我们知道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 ++; 

    }); 

}


登陆后阅读全文
阅读 2060 赞赏 1 有用 2 没用 0 收藏 0 分享

   


作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。

0 条留言

相关文章

angularjs 报错Error: [$rootScope:infdig],怎么办?

angularjs Error: ngRepeat:dupes Duplicate Key

angularjs 请求后端接口请求了两次

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

@摩拜小程序为什么关锁后,还是那个开锁界面?

看片要当心了!色站不只掏空你,还可能掏空你的电脑 | 网页中可能包含JS挖矿机脚本!!!

Chrome 调试工具的一些高阶功能

前端 | 如何绕过面试题中的小坑

说说Javascript的闭包(Closure)是怎么回事?

ajax返回的http status是200 没有进success方法 却进入了error方法?

为umeditor增加引用功能

JS将RGB,RGBA颜色值转换成16进制的形式

umeditor 报错:Discontiguous selection is not supported

怎么禁用onbeforeunload()方法

手机扫一扫
分享文章