2016-10-21 4 views
3

저는 각도의 초보자입니다. 로드시 json을로드하려고하는데이 방법은 잘 작동하지만 필드를 변경하면 input 필드에 오류 메시지가 표시됩니다.각도 부하 Json 오류

Error: $rootScope:infdig Infinite $digest Loop 

감사

내 HTML

<body ng-app="myApp" ng-controller="mainCtrl"> 
<div id="wrapper"> 
    <header style="height:50px;"> </header> 
    <div class="container"> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> 
     <script src="js/controller.js"></script> 
     <section> 
      <div class="col-md-4"> 
       <label for="words">Wörter</label> 
       <input ng-model="words" id="words" type="number" name="words" placeholder="Wörter" min="10" max="10000" value="{{words}}" step="10"> 
      </div> 
      <p>{{words}}</p> 
      <div id="view" class="col-md-6"> 

       <ul ng-controller="loadContent"> 
        <li ng-repeat="content in contents | orderBy:random">{{content.text}}</li> 

       </ul> 
      </div> 

     </section> 
    </div> 
</div> 

내 자바 스크립트

var app = angular.module('myApp', []); 
app.controller('mainCtrl', function ($scope, $http) { 
    $scope.words = 40; 
    $scope.letterLimit = 400; 
}); 
app.controller('loadContent', function ($scope, $http) { 
$scope.random = function() { 
     return 0.5 - Math.random(); 
    } 
$scope.loadContent = function() { 
    var def = $http.get('data.json').success(function(data) { 
     $scope.contents = data; 
    }); 
} 
$scope.loadContent(); 
}); 

내 JSON

[ 
{"text": "Lorem ipsum1", "date" : true}, 
{"text": "Lorem ipsum2", "data" : true}, 
{"text": "Lorem ipsum3", "data" : true} 
] 
+1

'$ scope.loadContent();'를 컨트롤러에서 제거하고'ng-init = "loadContent"'로 추가하십시오. –

+0

매우 이상합니다. 당신은 당신의 json을 넣을 수 있습니까? 그리고이 json은 잘로드되어 있습니까? –

답변

2

각도가 표시기와 상호 작용하는 즉시 컨트롤러에 불쾌감을 주므로 컨트롤러 하단에 $scope.loadContent();이 반복적으로 실행됩니다.

한번만 발사하기를 원한다고 생각합니까? 그렇다면 컨트롤러에서 함수 호출을 제거하고 아래와 같이 뷰를 수정하십시오.

<body ng-app="myApp" ng-controller="mainCtrl" ng-init="loadContent"> 

$scope.loadContent은 한 번만 호출됩니다. 다른 방법으로 전화를 원할 경우 또는 여러 번 전화하려면 질문에 명시하십시오.

+0

감사합니다. 잘 작동합니다. –

+0

안녕하세요. 또한 ng-cloak을 몸에 추가하여 JSON이로드되는 동안 컴파일되지 않은 각도 코드를 표시하는 브라우저를 중지하는 것을 고려하십시오. https://docs.angularjs.org/api/ng/directive/ngCloak. JSON이 로컬 인 경우 분명히 문제가되지 않습니다. –