2017-07-18 53 views
0

我有一个问题,节省JSON在示波器上,我已经一个功能节省了JSON成一个范围和完美的作品,但第二个将不保存...JSON不会节省范围AngularJS

servicoLeituraPosts.php返回JSON数据 servicoLeituraComments.php返回JSON与范围数据

均通过URL发送JSON正确,和第一位显示数据,但第二个不和这正是做这样的第一个,所以我不明白是怎么回事。

第一个将JSON保存到$ scope.posts,它有数据,我可以打印它 第二个将JSON保存到$ scope.comments中,如果我打印它,它是空白的?为什么?谢谢你的帮助,但我是AngularJS的初学者。

<script> 
    var app = angular.module('postsApp', []); 
    var interval; 

    app.controller('postsCtrl', function($scope) { 
     $scope.toggle = false; 
     $scope.texto = []; 
     $scope.comment = []; 
     $scope.comment = ""; 
     $scope.comments = []; 
     $scope.posts = []; 
     $scope.texto = ""; 
     $scope.idPost = 0; 
     $scope.showBox = function(p){ 

      p.toggle = !p.toggle; 


      if(interval == 0){    
      interval = setInterval("angular.element($('#postsApp')).scope().servicoLeituraPosts()",1000); 
      }else{ 
      clearInterval(interval); 
      interval = 0; 
      } 

      $scope.servicoLeituraComments(p); 

      console.log($scope.comments); 
      console.log($scope.posts); 

     }; 
     $scope.iniciaTimer = function(){ 
       interval = setInterval("angular.element($('#postsApp')).scope().servicoLeituraPosts()",1000);   
     }; 
     $scope.servicoLeituraPosts = function(){   
       $.getJSON(
         "servicoLeituraPosts.php", 
         { 

         }, 
         function(jsonData) 
         { 
          $scope.posts = jsonData; 
          $scope.$apply(); 
         }); 
     }; 
     $scope.servicoLeituraComments = function(p){   
       $.getJSON(
         "servicoLeituraComments.php", 
         { 
          "idPost": p.idPost 
         }, 
         function(jsonData) 
         { 
          $scope.comments = jsonData;       
          $scope.$apply(); 
         }); 

         console.log($scope.comments); 
     }; 
     $scope.addPost = function(){        
       $.post(
        "addPostRest.php", 
        { 
         "texto" : $scope.texto 
        }, 
        function(dados) 
        { 
         $scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU"; 
         $scope.$apply(); 
        } 
       ); 
     }; 
     $scope.addLike = function(idPost){ 
       $.post(
        "addLike.php", 
        { 
         "idPost" : $scope.idPost = idPost 
        }, 
        function(dados) 
        { 
         $scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU"; 
         $scope.$apply(); 
        } 
       ); 
      }; 
      $scope.addComment = function(p){        
       $.post(
        "addComentarioRest.php", 
        { 

         "comment" : p.comment, 
         "idPost" : p.idPost 
        }, 
        function(dados) 
        { 
         $scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU"; 
         $scope.$apply(); 
        } 
       ); 
      };  

    }); 
</script> 

回答

0

找到了解决办法,显然有一个与收到的POST参数这使得JSON无效;没有数据

+0

部分信用? :) –

0

它看起来像您呼叫console.log($scope.comments);问题,在联络$.getJSON(...),而不是等待后同步要退回jsonData。此时$范围尚未更新。

尝试console.log迁入回调:

function(jsonData) 
{ 
    $scope.comments = jsonData;       
    $scope.$apply(); 

    console.log($scope.comments); 
});