0

그래서 난 데 문제 :AngularJS와 다음과 같은 오류와

var appjson = '{\"APP_DATA_RETRIEVED\" : \"fail\"}'; 
var appPostRequest = $.get(appurl, data, appconfig); 
appPostRequest.done(function(appdata){ 
    console.log(appdata); 
    var date=$scope.final.rows[selectedItem.row].c[0].v; 
    appjson = JSON.stringify(appdata); 
    console.log(appjson); 
    var postResponse = jQuery.parseJSON(appjson); 
    var postResponse2=postResponse.Response; 
    var post=[]; 
    console.log(postResponse2.length); 
    for(i=0; i<postResponse2.length; i++){ 
     var data = postResponse2[i]; 
     var dt = new Date(postResponse2[i]['startTime']); 
     var day = (dt.getMonth() + 1) + '-' + dt.getDate() + '-' + dt.getFullYear(); 
     if(day==date){ 
      post=post.concat(data); 
      console.log(data); 
     } 
    } 
    console.log(post); 
    $scope.gridOptions8.data=post; 
    $scope.failchartvisible=true; 
    $scope.successchartvisible=false; 
    console.log($scope.gridOptions8.data); 
    $scope.$apply()//error originates from here 

: 차트에서 데이터를 검색하는이 코드 조각으로

chartsuccessfulapploginsController.js:59 TypeError: Converting circular structure to JSON at Object.stringify (native)

done 함수의 "appdata"매개 변수는 항상 다음과 같은 구조를 갖는 JSON 객체입니다.

{ 
    "Response": [{ 
     "challenge": "rp6lssenku72b2ppr4gkjb4q92", 
     "startTime": "2016-04-26 10:41:46.0", 
     "successfullyCompleted": false, 
     "id": 1, 
     "username": "bojan1037" 
    }, { 
     "challenge": "ljtqvmk1mcqqqg5m0op0fljnek", 
     "startTime": "2016-04-26 10:49:56.0", 
     "successfullyCompleted": false, 
     "id": 4, 
     "username": "bojan1037" 
    }, { 
     "challenge": "h062sm69lpkib7t3sk4fuppi1v", 
     "startTime": "2016-04-26 14:53:31.0", 
     "successfullyCompleted": false, 
     "id": 10, 
     "username": "bojan1037" 
    }], 
    "Error": "" 
} 

I understa json.stringify와 관련이 있다는 것을 알았습니다. 그러나 나는 appdata가 순환 참조를 가질 수있는 방법을 볼 수 없기 때문에 오류를 수정하는 방법을 이해할 수 없다고 생각합니다. 아무도 내가 그것을 알아낼 수 있습니까? 누구든지 올바르게 대답하면 내 영원한 감사를받을 것입니다.

+0

'appdata'는 JSON.stringify 바로 전에 제공 한 것과 정확히 같습니까? 그걸 'console.log' 했니? – MMhunter

+0

@MMhunter 그래. 정확히 같은. –

+0

'$ scope. $ apply()'에서 시작된 문제이므로 주어진 코드에 문제가없는 것 같습니다. 어쩌면 내가 생각하는 일부 $ 시계 또는 바인딩 함수에서. – MMhunter

답변

0

그 원인은 변수 appjson 인 것으로 보입니다. 어떻게 든 그것은 strigify JSON 개체와 순환 참조를 만드는 것입니다. 대신이의 :

var appjson = {}; 

을 그리고 당신은 응답이 예상치 못한 느낌 때마다, 나중에 원하는 JSON의 값이 빈 객체를 채울 수 :

var appjson = '{\"APP_DATA_RETRIEVED\" : \"fail\"}'; 

이 같은 선언 시도 할 수 있습니다.

+0

같은 결과, 두렵습니다. –

+0

이것을 시도하십시오 appjson = JSON.parse (appdata); –

+0

아니요,이 오류를 반환합니다. Uncaught SyntaxError : JSON 위치 1에서 예상치 못한 토큰 o –

0

코드에서 변수 유형을 json의 문자열 (appjson = JSON.stringify(appdata);)로 변환 할 필요가 없습니다.

angularjs에서 $httpProvider을 사용하는 것이 더 좋습니다.

link에 대한 API를 확인하십시오.

+0

오류 검사를 위해이 작업을 수행합니다. $ httpProvider를 사용하는지 여부는이 질문과 관련이 없습니다. –

관련 문제