角度阵列未更新视图
Angular array not updating view
我正在使用angularJs,socketIo实现一个聊天模块。(以及用于后端的nodeJS)。
在angular中,有一个数组附加到scope:$scope.messages。对于聊天客户端,所有消息都被推送到这个数组中,并且这个数组在视图中使用ng repeat呈现。
<div class="chat-window">
<div class="chat-message" ng-repeat="message in messages track by $index">{{message}} </div>
</div>
然而,当我将元素推入"messages"数组时,它不会被渲染,除非出现按键或鼠标事件。我已经检查过了,没有按键或鼠标事件侦听器。视图现在正在自动更新。
有人能给我提一下这个问题吗?
我认为您已经使用ajax推送了数据。
jQueryajax没有angular的功能,你需要像下面这样包装,它会告诉$scope.message也将更新和更新视图。。
推送数据后,尝试应用。。。
$scope.$apply(function(){
$scope.message= data;
});
下面的代码对我来说很有效,每当你从套接字收到新消息时,你只需要将你的(与UI更新相关的)代码绑定到$scope中$apply()函数
socket.on = function (e) {
$scope.$apply(function () {
//user code to update UI
});
};
相关文章:
- $routeParams在传递到新视图时未定义&控制器
- ajax.beginform() 不更新部分视图 MVC
- 角度指令没有更新模型视图
- 如何在渲染新视图之前关闭所有事件
- 从Backbone中的另一个视图调用新视图
- Angular数组更改时更新HTML视图
- 更新淘汰视图模型属性时激发更改事件
- Angular2 在创建 ngSwitch 新视图后调用自定义函数
- Knockout.js-更新父视图模型中的数组,在第二个视图模型中使用值
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- 单击按钮时更新角度视图模型
- 当现有 Google 标记移动到另一个位置时,如何更新新的纬度和经度
- 如何在 DIV 中更新新图像
- 使用 AJAX 更新的模型更新 AngularJS 视图
- 主干新视图反映旧模型数据
- 如何在单击按钮时动态更新部分视图
- 更新主干视图
- 挖空 - 添加了可观察的不更新新对象
- 使用 ajax 从 php 文件中获取随机数不会更新新结果
- 创建新视图时调用呈现函数