将json数据加载到工厂文件

时间:2015-05-22 12:17:11

标签: json angularjs angularjs-directive factory

我是AngularJS的新手,刚开始学习它。如何在不直接添加整个数据的情况下将JSON文件加载到script.js文件中。 这是该程序的代码:

<!DOCTYPE html>
<html ng-app="quizApp">
<head>
  <meta charset="utf-8" />
  <title>QuizApp</title>
  <link rel="stylesheet" href="style.css" />
  <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
  <script src="script.js"></script>
</head>

<body>
  <div class="container">
    <h1 class="title">QuizApp</h1>
    <quiz/>
  </div>
</body>

Plunkr

2 个答案:

答案 0 :(得分:4)

您需要更正ques.json中粘贴的json(使用引号""),否则如果您将调用$http.get(),则由于无效的json而导致异常。

ques.json中更正json内容后,只需使用$http并将结果分配给问题变量。

E.g。

app.factory('quizFactory', function($http) {

    var questions = [];

   $http.get('ques.json').success(function(data) {
     questions = data;
   })


    return {
        getQuestion: function(id) {
            if(id < questions.length) {
                return questions[id];
            } else {
                return false;
            }
        }
    };
});

以下是demo

答案 1 :(得分:-1)

 $http.get('ques.json')
       .then(function(result){
          $scope.questions = result.data;                
        });