2015-04-23 118 views
0

我想讀一下包含的歌曲列表和URL的圖像麻煩在angularJs

{"songs" : [ 
{ 
    "SongName" : "Broken Dreams", 
    "image" : "img/browser.svg" 
}, 
{ 
    "SongName" : "My heart goes on", 
    "image" : "img/browser.svg" 
}, 
{ 
    "SongName" : "Summer of 69", 
    "image" : "img/browser.svg" 
}, 
{ 
    "SongName" : "Broken Hearted Girl", 
    "image" : "img/browser.svg" 
}, 
{ 
    "SongName" : "American idiot", 
     "image" : "img/browser.svg" 
    } 
]} 

但基本的問題是,當我使用$ http.get一個JSON文件中讀取JSON數據(),它讀取JSON,但我不能把它分配給了angularJS對象,這裏是我的angularJS代碼

var app = angular.module('TheSlideShow', []); 
     app.controller('mainController', ['$scope', '$http', function($scope, $http){ 

      $scope.test = "this is a test string"; 
      $scope.songList = {}; 

       $http.get("Data/SongList.json", ['$scope']).success(function(List){ $scope.songList = List.songs; console.log("The Length : " + $scope.songList.length);}); 

      for(var i = 0; i< $scope.length; i++) 
       { 
        console.log("loop number" + i); 
       } 

     }]); 

長度字段給出結果爲5,但我的for循環不會爲一個連運行單次..

+0

你有聯繫的quesion是基於jquery,我正在尋找angularJS方式! –

回答

0

N錯誤的赭

  1. 你不應該傳遞$scope$http.get
  2. 你不能得到外界的AJAX directictly,價值是越來越通過Ajax調用填充$scope.songList值,所以你需要AJAX的成功在for循環中運行

代碼

$http.get("Data/SongList.json").success(function(List){ 
    $scope.songList = List.songs; 
    console.log("The Length : " + $scope.songList.length); 
    for(var i = 0; i< $scope.songList.length; i++) 
    { 
    console.log("loop number" + i); 
    } 
}); 
+1

嗨,謝謝你提醒我關於$ scope變量,我正在使用命中和試用方法,並忘記刪除它。我想用json中的數據轉換爲另一個函數,還有其他方法可以做到嗎?我的意思是我怎樣才能將我的歌曲列表傳遞給不同的功能? –

+0

在控制器裏面做那個javascript函數? –

+0

是的!該功能將在同一個控制器內! –