angularjs - 发生服务器端更新时,如何更新 AngularJS 中的 $scope?

标签 angularjs cakephp websocket ngresource ratchet

背景

  • 我正在尝试制作一个使用 PHP、MYSQL 后端和 AngularJS 前端的单页实时应用程序
  • 我的后端使用 CakePHP 框架,它提供 JSON API,前端使用 AngularJS 中的 ngResource 来访问这个 API。
  • 我有“用于 PHP 的 Ratchet WebSockets”工作,它可以在后端更新时通过 websockets 触发对浏览器的响应。


  • 我的不完整解决方案

    解决方案1:使用 websocket 响应通过某种 $scope.model.push(websocket.data) 方法更新 AngularJS $scope 对象?

    解决方案2:使用通过 websocket 的响应来触发 ngResource 上的 Refresh,这将完全刷新 $scope 对象?

    问题

    我的解决方案可行吗?我怎么能做到呢?

    最佳答案

    您只需要从 WS 读取事件并使用 $emit 填充它们。和 $broadcast ,那么您的 Controller 可以订阅与其相关的任何事件。

    看一眼:

    angular websocket factory

    AngularJS and WebSockets beyond

    关于angularjs - 发生服务器端更新时,如何更新 AngularJS 中的 $scope?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732913/

    相关文章:

    postgresql - 修改cakephp中的Routes.php文件

    go - (Go) 比较 ws 循环中不断变化的变量

    javascript - 在复选框上使用 debounce Angular

    Angularjs:$http 响应设置 cookie 不适用于 CORS

    javascript - AngularJS 单向绑定(bind)无法正常工作

    Cakephp 2.0 + 元素 + requestAction = 空结果

    javascript - Angular - 我在 View 中有一个元素绑定(bind)到服务中的变量,但是当服务更新时 View 没有更新

    javascript - Cake PHP通过javascript更改隐藏表单项的值

    android - websocket 是否专用于浏览器

    node.js - socket.io 客户端持续重试无法访问的主机