2016-01-23 34 views
0

這裏是從我的API retrived JSON文件:AngularJS:不能使用JSON

控制器:

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; 
    }); 
}]); 

查看

{ 
    "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" 
    } 
} 

是我寫的角度代碼:

<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> 

我該如何解決這個問題?這是一個問題的角度還是JSON?

問題:來自JSON的數據沒有得到顯示。

更新:該錯誤是由於:

跨來源請求阻止:同源策略不允許在http://url_of_api讀取遠程資源。 (原因:缺少CORS頭'Access-Control-Allow-Origin')。

我該如何解決這個問題?

+1

你真的沒有解釋你有什麼問題。代碼中肯定存在問題,但您的問題應該包含適當的問題描述,以便人們知道要查看哪個部分。 *「無法使用json」*是無意義的描述 – charlietfl

+0

抱歉。 JSON文件中的數據沒有顯示出來...... – QuikProBroNa

+1

你記錄了你的'data'變量嗎?你確定它自動被解析爲一個JSON對象嗎?如果你的API沒有顯示正確的頭部,顯示它是JSON'$ http',可能只是將它作爲文本檢索。如果API位於不同的域中,由於跨源安全性限制,您可能無法獲取該API。添加一個'.fail'回調看看你是否得到錯誤 –

回答

0

{{ item.val }}不存在,

要麼使用{{ item }}

,或者如果你想關鍵還讓你ngRepeat,如:

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

所以在第一次迭代:

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

謝謝。但即使是'questions.t'也沒有顯示。 – QuikProBroNa

+0

爲什麼downvote? – koox00

+0

對不起,我的意思是'questions.pid',我沒有downvote – QuikProBroNa

0

我認爲你必須使用JSON.parse(jsonString)或其他可用函數將您的json轉換爲對象。