2015-11-18 47 views
0

,我嘗試讀取一個JSON文件(即在同一目錄作爲我的HTML頁面),但每當我運行的應用程序是我有這個問題表明this.(This is my html page - code behind)

。 JSON文件 -JSON文件不顯示數據

[ 
    { "_id":"1", "description":"Samsung Note 4", "price":899, "image": "samsung-note4.png", "platform":"Android Jellybean" }, 
    { "_id":"2", "description":"iPhone 6", "price":1028, "image": "iphone6.png", "platform":"iOS 8" }, 
    {"_id": "3","description": "HTC One (M8)","price": 768,"image": "htc-one.png","platform": "Windows 8"} 
] 


這是我的JS文件 -

App.controller('ProductController', function($scope, $http){ 

    $http.get('products.json') 
    .then(function(res){ 
     $scope.products = res.data;     
    }); 

    $scope.selectProduct = function (id) { 
     $scope.product = _.where($scope.products, {_id: id})[0]; 
    } 
}); 

我不知道爲什麼我無法獲取jSON文件中的數據。任何可能的原因?

+0

您可以檢查控制檯中的網絡選項卡並告訴我什麼是AJAX請求的響應?它可以幫助檢測問題。使用chrome開發工具 – murli2308

+1

當你的$ http.get方法運行後,console.log(res)會得到什麼? –

回答

0

這部分需要校正:

.then(function(res){ 
     $scope.products = res;     
    }); 

由於RES是解析的JSON數據。無需使用res.data

+0

AngularJS返回數據屬性中的JSON文件的內容,https://docs.angularjs.org/api/ng/service/$http –

+0

有人也可以確認。我不認爲這是真的,除非配置在$ httpProvider.defaults.transformRequest' –

0

嘗試在 '產品' 或小寫字母P你在你的控制器NG-重複

<li ng-repeat="product in products" > 
{{ product.image }} 

,試試這個:

.when(function(data){ 
    $scope.products = data; 
}); 

響應對象具有以下屬性:

  • data - {string | Object} - 使用 轉換的響應正文轉換功能。
  • status - {number} - 響應的HTTP狀態碼。
  • 標題 - {function([headerName])} - 標題getter函數。
  • config - {Object} - 用於 的配置對象生成請求。
  • statusText - {string} - 響應的HTTP狀態文本。
+0

是的,這似乎是可能的嫌疑人! –

+0

我改變了它,但它仍然無法正常工作......嗯,我懷疑這是controller.js問題 –

+0

如果您在.when函數中使用console.log(data),您是否在瀏覽器控制檯中看到json對象? – KnvpBE