javascript - angularjs 如何实现数据自动刷新?
ringa_lee
ringa_lee 2017-04-11 11:19:52
[JavaScript讨论组]

想实现页面的数据改变了(就是说我提交了数据到后台),想自动刷新一下数据,渲染在页面上了,只是数据刷新,怎么弄??急呀.....

ringa_lee
ringa_lee

ringa_lee

全部回复(9)
ringa_lee

angularjs的数据应该是双向绑定的,把前端视图对应的model里的数据更新到最新就可以了。

你具体遇到了什么情况


上传图片的情况

$scope.imgUrl = null;

someAjaxReturnPromise()
  .then(resp => {
    // ... do something
    $scope.imgUrl = resp.imgUrl;
  })
<p ng-if="imgUrl">
  <img ng-src="{{imgUrl}}">
</p>
迷茫

要么前端轮询,要么部署个长连接服务器或者推送?

巴扎黑

前端ajax提交成功 就重新取数据或者更新数据就好了 angular是双向绑定 页面上的数据也会改变的啊

天蓬老师

事件监听:实现从Model到DOM的更新

怪我咯

分两种情况:

  1. 前端触发的改变,因为angular是双向绑定的,一般来说$digest循环会自动刷新数据。

  2. 如果是服务器数据改变不是由前端触发的,那么可以通过两种方法来实现前后端数据同步:

    • 轮询,通过$interval注册一个函数,每隔一秒就去服务器拿一次数据,然后刷新前端。

    • websocket,使用websocket进行双工通信,比如采用socket.io这个库就可以实现。

迷茫

用$watch监测

迷茫

看了你的几个问题,还是不了解angualr。问题应该是出在你的数据显示上,而不是刷新的问题。从你的tag就看出来了,用angular的话jQuery是不需要的。
你的数据显示要使用angular的方式,单一数据如 <span>{{demoText}}</span>,数组如<ul><li ng-repeat="item in yourRows">{{item.name}}</li></ul>
在这个前提下,当$scope.demoText或者$scope.yourRows的值发生变化时,显示的数据自然同步变化,根本不存在你想象的刷新问题。
亲,不要拿angualr当作jquery来用哦。

巴扎黑

这不就是再调一下获取数据的接口然后赋值给对应的model就行了吗。。。angular会帮你做重新渲染的事情的,不需要自己来做,你要做的事情就是更新模型的值

ringa_lee

如果是想在向后台提交请求后实时动态的在页面展示后台返回的数据的话就可以在请求后台成功的函数里请求你想展示的数据,然后绑定对应的modal就可以了.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号