У меня есть службы со следующим кодом:
.service('ChatService', function() {
return { //Gets Data from controller
sendData: function(data) {
this.chatData = data;
console.log('this.chatData: '+this.chatData);
},
chats: this.chatData,
getChats: function() {
return this.chatData;
},
getChat: function(chatId) {
for(i=0; i<this.chats.length; i++) {
if (this.chats[i].id == chatId) {
return this.chats[i];
}
}
}
}
})
Важным моментом здесь является то, что SendData извлекает данные
[{id: 1, message: "Chat Message 1"},{id: 2, message: "Message 2"}]
от контроллера. Затем getChats в сервисах называется $scope.chats = ChatService.getChats();
тем же контроллером, что и в шаблоне. Когда этот пункт щелкнул новую страницу с дополнительной информацией, это показать, следовательно, функцию getChat
и getChats
. код в контроллер для загрузки страницы, больше деталей
$scope.chatId = $stateParams.chatId;
$scope.chat = ChatService.getChat($scope.chatId);
Однако я получаю ошибки не может прочитать свойство длины не определено. Теперь, если я изменю chats: this.ChatData
в услугах
chats: [{id: 1, message: "Chat Message 1"},{id: 2, message: "Message 2"}]
Он работает как шарм, но мне нужно, чтобы отобразить в реальном времени, что находится в контроллере, потому что я скачивании и получать информацию от сервера, на котором будет обновляется в режиме реального времени для чата.
вы должны использовать SignalR чтобы есть ответ в режиме реального времени [signalr] (https://github.com/JustMaier/angular-signalr-hub) – Maher