我廠有「聊天」,通過socket.io連接到我的服務器的NodeJS和發送消息給服務器。角裝訂錯誤
.factory('Messages', function($ionicScrollDelegate){
var messages = [];
return {
getMessages : function(){
return messages;
},
setMessage : function(msg){
messages.push(msg);
}
}
})
.factory('Chat', function(Socket, Messages){
Socket.on('onChat', function(data){
if (data.from !== username){
Messages.setMessage({username : data.from, message : data.msg});
}
});
return : {
sendMessage: function(msg){
Messages.setMessage({
username: username,
message: msg
});
Socket.request(route, {
rid: 'AA',
content: msg,
from: username,
target: '*'
}, function() {
});
}
和我的控制器從工廠檢查消息arr。
.controller('livePageCtrl', function($scope, Messages, Chat){
$scope.data = {};
$scope.data.message = "";
$scope.messages = Messages.getMessages();
$scope.sendMessage = function(msg){
Chat.sendMessage(msg);
$scope.data.message = "";
};
});
和我的看法形式
<div class="chat">
<div class="row" ng-repeat="message in messages track by $index">
<div class="col col-100"">
{{message.message}}
</div>
</div>
</div>
<input ng-model="data.message" type="text" placeholder="Chat to Room">
<button type="submit" ng-click="sendMessage(data.message)"></button>
當我鍵入消息,並按下按鈕,發送我的ARR信息更新,我可以在DOM中看到消息,但如果我收到新郵件從服務器我的信息arr已更新,但DOM未更新。只有當我開始打印新的消息DOM更新後,我才能看到傳入的消息。我做錯了什麼?爲什麼我的DOM不會在來自服務器的新消息之後更新? 謝謝大家!很遺憾,我的英語)
什麼是'Socket'? –
返回套接字連接的服務 –