2014-09-03 73 views
1

我想從一個服務器加載一些json數據與後臺加載屏幕。 這裏是控制文件類型錯誤:不能調用mehod得到未定義的angularjs

angular.module('starter.controllers', []) 

    .controller('DashCtrl', function($scope) { 
    }) 
    //loading backgroundscreen of loading 
    .controller('FriendsCtrl', function($scope, Friends, $ionicLoading) { 
     $ionicLoading.show({ 
       template: 'Loading...' 
      }); 
     //this will generate the error 
     Friends.all().then(function(data){ 

      $scope.friends=data; 
      $ionicLoading.hide(); 
     }); 
    }) 

這裏是我的服務文件

angular.module('starter.services', []) 
.factory('Friends', function($http) { 
    // Might use a resource here that returns a JSON array 

    // Some fake testing data 
    var friends ; 


    return { 
    all: function() { 
     $http.get('http://www.root5solutions.com/ionictest/get.json').then(function(msg){ 
       console.log("console output"+msg.data); 
       friends=msg.data; 
       console.log("from server"+msg.data); 
      }); 
     return friends; 
    }, 
    get: function(friendId) { 
     // Simple index lookup 
     return friends[friendId]; 
    } 
    } 
}); 

我收到的控制檯錯誤

Type Error:cannot call method get of undefined. 

請幫

回答

0

因爲你的服務沒有返回的承諾,但是您正在等待控制器中的延遲對象。

angular.module('starter.services', []) 
.factory('Friends', function($http) { 
    // Might use a resource here that returns a JSON array 

    // Some fake testing data 
    var friends ; 


    return { 
    all: function() { 
     return $http.get('http://www.root5solutions.com/ionictest/get.json'); 
    }, 
    get: function(friendId) { 
     // Simple index lookup 
     return friends[friendId]; 
    } 
    } 
}); 
+0

沒有工作是否有任何更改控制器文件 – 2014-09-03 09:16:50

+0

你又得到同樣的錯誤? – 2014-09-03 09:51:03

+0

這是多數民衆贊成在我的問題 – 2014-09-03 16:26:17

相關問題