Новые данные, отправляемые socket.io, не принимаются AngularJS - PullRequest
0 голосов
/ 05 октября 2018

У меня есть сервер NodeJs с socket.io, мое приложение - это чат. Я использую AngularJS в качестве клиента, моя проблема в том, что когда я отправляю новые данные в мои базы данных, они сохраняются правильно, но когда я попал в мой клиент,данные не обновляются сами по себе,

на моем клиентесервер сокетов со всеми данными

    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 не обновляет их, некоторые могут помочь мне заранее.

1 Ответ

0 голосов
/ 05 октября 2018

Не могли бы вы предоставить версию Angular, которую вы используете?

Я почти уверен, что это связано с необходимостью преобразования функций исходного фреймворка с подходящим вам вариантом.(Поставщик, Завод или Сервис) для ввода дайджест-цикла.

Взгляните на этот учебник для версии Typescript (Angular2 +)

https://tutorialedge.net/typescript/angular/angular-socket-io-tutorial/

Или этот для AngularJS (1 <): </p>

https://code.tutsplus.com/tutorials/more-responsive-single-page-applications-with-angularjs-socketio-creating-the-library--cms-21738

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...