sql - AngularJS 不接收 socket.io 发出的新数据
问题描述
我有一个带有socket.io的NodeJs服务器,我的应用程序是一个聊天我使用AngularJS作为客户端,我的问题是当我将新数据发送到我的数据库时被正确保存,但是当我到达我的客户端时数据不是' t刷新了自己,
在我的客户端聊天控制器上
我有这个
socket.on(CHAT.GET_CHATS, instance.onChatsReceived);
我正在调用这个函数
从带有所有数据的套接字服务器接收发出的对象
function onChatsReceived(chatsArr) {
console.log(chatsArr);
// decode messages for history array
chatsArr.forEach(function (oneChat) {
var parsed = JSON.parse(oneChat.members);
var parsedSent = JSON.parse(oneChat.sentby);
// console.log(parsedSent)
var nick = parsedSent[0].lastseen;
// console.log(nick);
oneChat.isOnline = $scope.isOnline(parsedSent[0].lastseen);
var decoded = htmlDecode(oneChat.message);
oneChat.message = decoded;
oneChat.members = parsed;
});
$scope.messagesCounted = true;
$scope.$applyAsync(function () {
$scope.chats = chatsArr;
if ($scope.chats.length < 100 ) {
$scope.loadMoreContacts = false;
}
});
}
但是如果我不刷新浏览器,我的对象数组不会改变
在我插入数据后,我的数组来自我的套接字
(18) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
在我插入数据并刷新我的浏览器之后
(19) [{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}、{… }、{…}、{…}、{…}、{…}、{…}、{…}]
就像 socket.io 发出数据但 AngularJS 不刷新它有些可以帮助我提前感谢。
解决方案
你能提供你正在运行的 Angular 的版本吗?
我很确定,这来自于原始框架的功能需要转换为适合您(提供者、工厂或服务)的风格才能进入摘要循环的必要性。
查看 Typescript 版本(Angular2+)的教程
https://tutorialedge.net/typescript/angular/angular-socket-io-tutorial/
或者 AngularJS (1<) 的那个:
推荐阅读
- scala - 如何在 spark scala 中将 Array[Any] 转换为 Long 数据类型以将数据存储在 scala 模型对象中
- python - 在 python 中创建模块 - 导入如何工作
- javascript - 使用箭头函数和类 get | 减少定义类常量的代码
- javascript - 使用查询参数向用户传递消息有什么问题吗?
- python - keras,两个张量列表的 MSE
- asp.net-mvc - 文件名的 MVC 数据属性
- c++ - 大括号初始值设定项列表作为函数参数
- java - 使用 PHP 方法解密 Java 中的哈希码
- php - SQL PHP 搜索列名和值
- android - Cordova - Permanent storage even after uninstall