当数据在另一个URL上更新时,AngularJS是否可以在一个URL上触发$watch
Can AngularJS trigger $watch on one URL when data is updated on another URL
我想知道当数据库中的更改不是由当前页面上的用户操作引起时,我是否可以触发数据库中更改的$watch
。
例如,控制器:
.MesgCtrl(...)
$scope.data = {'name': 'Tim', 'visits': 0};
$scope.$watch('data', function(newValue, oldValue) {
console.log("$watch triggered");
});
例如,在模板上.html我有:
<ul ng-repeat="d in data">
<li>{{d}}</li>
</ul>
不同的 REST 端点 URL 获取访问的 POST 请求,并在访问发生时在数据库中更新它们。 我想在模板上更新访问计数.html以便用户查看它们何时在数据库中更新。但是,到目前为止,我只能在调用$resource.save()
更新来自同一 AngularJS 控制器 URL 而不是来自不同 URL 的访问时$watch
工作。
如果您需要两种通信方式,例如当其他人访问页面时在客户端上更新,您可以使用像 socket.io http://socket.io/这样的图书馆来访问每个连接的套接字(。
您还可以添加一个计时器来请求服务器,例如每 30 秒请求一次,并获取访问计数器的更新(为此使用 $interval
(。
如果只想在经过一定时间后请求一次,请使用 $timeout
。
$interval
致力于计划数据刷新,并将更改拉取到 Web 浏览器客户端。 这是我使用的代码:
conciergeControllers.controller('MessageCtrl',
function MessageCtrl($scope, $stateParams, $interval, Message, GuestMessages) {
$scope.messages = {};
$scope.getGuest = function(GuestMessages, $stateParams, $scope) {
GuestMessages.get({
id: $stateParams.guestId
}, function(response) {
$scope.guest = response;
$scope.to = response.phone_number;
$scope.messages = response.messages;
// test
console.log('Guest:', $scope.guest);
});
}
// populate initial context without a delay
$scope.getGuest(GuestMessages, $stateParams, $scope);
$interval(function(){ $scope.getGuest(GuestMessages, $stateParams, $scope); }, 5000);
}
);
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 我们如何在不更改url的情况下使用锚点点击从一个页面重定向到另一个页面
- 一次又一次地在新的和相同的选项卡中打开一个url
- 如何使用javascript获取下一个/转发url
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- Mapbox JS,来自URL的GeoJSON featureCollection对象只添加了一个标记
- 在iframe中加载url并添加一个类
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- javascript window.location在检查firebug时给了我一个错误的url路径
- 一个jsp中有两个操作URL
- 如何使用特定的javascript函数创建一个url,以便在加载页面时运行
- 使用javascript加载并显示来自另一个域的页面,而不显示原始URL
- 将php页面URL中的变量传递给JavaScript和另一个php
- 如何使用JQuery提取URL中最后一个/分隔符之前的最后一个值
- Javascript/jQuery获取所有url参数并添加/更改一个参数
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 根据jQuery中的另一个链接更改url
- 请我需要一个可以编辑mp3 URL的JavaScript代码