На самом деле я пытаюсь создать почтовый ящик, как GMAIL. Но я не могу показать полученное сообщение, как только отправитель отправит это сообщение. Я использую angularjs и codeigniter.

У меня есть два контроллера отправителя и получателя. Как только отправитель отправляет сообщение, я обновляю переменные области видимости контроллера получателя. Но это не работает.

Контроллер отправителя отправляет сообщение

$scope.send_message_toCustomer = function(counselor_id,thread_title) {  
    var thread_id=$('#threadid').val();
    //console.log(thread_id);
        $scope.inboxMessage.message=$scope.message;
        $scope.inboxMessage.thread_id=thread_id;
        var request = $http({
            method:"POST",
            url: site_url+"thread/insert_thread_message",
            data : $scope.inboxMessage,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }    
        });
        request.success(function($data){
                //console.log($data);
                if($data==1)
             {
                $scope.message='';
                            getCustomerChildThread.getChildThread().success(function($data) 
                {
                    //console.log($data);
                    $scope.C_Thread = angular.copy($data);              
                }); 
                $('#inbox_sub_menu').css('display', 'block');
                $('#s_menu').addClass('open');
                //$timeout(function() {
                    $scope.inbox_aco_thread.thread_id=thread_id;
                    var request = $http({
                        method:"POST",
                        url: site_url+"thread/inbox_thread",
                        data : $scope.inbox_aco_thread,
                        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }    
                    });
                     request.success(function($data){
                             $('#thread_msg_count_'+thread_id).removeClass('msg_count');
                                     $scope.inbox_messages=angular.copy($data);
                                     $scope.inbox_messages.counselor_id=angular.copy(counselor_id);
                                     $scope.inbox_messages.thread_id=angular.copy(thread_id);
                                     $scope.inbox_messages.thread_title=angular.copy(thread_title);
                            });
                            //}, 500);
                         }
                     });

               };

После этой функции я хочу обновить область моего контроллера приемника. Мой контроллер приемника получает сообщения

$scope.inbox_cust_thread=function(customer_id,thread_id,thread_title)
{
    $('#thread_msg_count_'+thread_id).removeClass('msg_count');
    $scope.main_threadview=true;
    $scope.add_threadview=false;
    $scope.cust_thread.loading = false;                 
    $scope.inbox_cu_thread.counselor_id=counselor_id;
    $scope.inbox_cu_thread.thread_id=thread_id;
    var request = $http({
                method:"POST",
                url: site_url+"Customer_thread/inbox_thread",
                data : $scope.inbox_cu_thread,
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' }    
            });
             request.success(function($data){
                 //$('#thread_msg_count_'+thread_id).addClass('msg_count');
                 $scope.cust_inbox_messages=$data;
                 $scope.cust_inbox_messages.customer_id=customer_id;
                 $scope.cust_inbox_messages.thread_id=thread_id;
                 $scope.cust_inbox_messages.thread_title=thread_title;
                 //$scope.cust_inbox_messages.counselor_id=counselor_id;
        });
};

Кто-нибудь, пожалуйста, помогите мне.

0
Kavita 8 Дек 2016 в 15:02

3 ответа

Лучший ответ

Я думаю, что это невозможно, вы должны хранить сообщения в базе данных, тогда в angularjs вы должны делать запрос каждую минуту, например, чтобы проверить, есть ли новые сообщения.

1
grogro 8 Дек 2016 в 12:10

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

0
Ankit Agarwal 8 Дек 2016 в 12:11

Здесь Демо Для автоматического обновления значения на основе времени

I think it will useful for you.once you send the data from sender. receiver need to auto update. it will useful to what need to acheive.
1
Suresh B 8 Дек 2016 в 12:17