我正在使用angularJs,socketIo实现一个聊天模块 . (和后端的nodeJS) .
在angular中有一个附加到范围的数组:$ scope.messages . 对于聊天客户端,所有消息都被推送到此数组中,并使用ng-repeat在视图中呈现此数组 .
<div class="chat-window">
<div class="chat-message" ng-repeat="message in messages track by $index">{{message}} </div>
</div>
但是,当我将元素推入'messages'数组时,它不会被渲染,除非有按键或鼠标事件 . 我已经检查过,没有按键或鼠标事件监听器 . 该视图现在正在以某种方式自动更新 .
有人可以告诉我这个问题吗?
2 回答
我认为你已经使用ajax推送你的数据了 .
jQuery ajax是出于角度的能力,你需要像下面一样包装,它会告诉$ scope.message还要更新和更新视图 .
推送数据后尝试应用...
以下代码为我工作,每当你从套接字获得新消息时,你只需要在$ scope中绑定你的(UI更新相关)代码 . $ apply()函数