角度加载Json错误

时间:2016-10-21 08:03:06

标签: javascript html angularjs

我是一个角色初学者。 我想在加载时加载json,这很有效 但如果我对input字段进行了更改,则会收到错误消息。

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>

我的javascript

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 个答案:

答案 0 :(得分:2)

我认为角度会在您与视图交互后立即消除控制器,因此会反复执行控制器底部的$scope.loadContent();

我假设你只希望这一次开火?如果是这样,请从控制器中删除函数调用并修改您的视图,如下所示。

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

这样,$scope.loadContent只被调用一次。如果您想以其他方式或多次呼叫,请在您的问题中注明。

相关问题