AngularJS:不能使用JSON

时间:2016-01-23 18:37:24

标签: javascript angularjs json

以下是从我的API中恢复的JSOn文件:

{  
   "pid":12925,
   "a":"How is this a palindrome hexagon oriennted? (digits should not be repeated)",
   "c":"",
   "opts":{  
      "A":"216",
      "B":"69",
      "C":"72",
      "D":"96",
      "answer":"X"
   },
   "ansDetails":{  
      "ans":"<p>This is question is invalud</p>",
      "ansPid":null,
      "pt":"X"
   }
}

我写的角度代码:

控制器:

testControllers.controller('DetailsController', ['$scope', '$http','$routeParams' ,function($scope, $http, $routeParams) {
  $http.get('http://url_of_theapi').success(function(data) {
  $scope.questions = data;
    $scope.parseInt = parseInt;
  });
}]);

查看:

<section class="a">
    <div class="mcq">
      <div>
        <h3>QUESTION</h3>
        <p class>{{questions.pid}}</p>    
     <ul>
              <li class= "optlist" ng-repeat="item in questions.opts">
              <label class="formgroup">
              <input type="radio" name = "q">
              {{item.val}}
             </label>
             </li>
        </ul>
      </div>
    </div>
</section>

我该如何解决这个问题?这是Angular的问题还是JSON?

问题:未显示JSON中的数据。

更新:错误原因是:

阻止跨源请求:同源策略禁止在http://url_of_api读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

{{ item.val }}不存在,

使用{{ item }}

或者如果你想让密钥也像你的ngRepeat那样:

`ng-repeat="(key, val) in questions.opts"`

所以在第一次迭代中:

{{ key }} => a
{{ val }} => 216

答案 1 :(得分:0)

我认为您必须使用JSON.parse(jsonString)或其他可用功能将您的json转换为对象。