2017-07-18 28 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); 
});