2016-12-21 8 views
0

は私がサービスを作成しようとしていますが、これはそれである:工場実装の問題

(function() { 
    'use strict'; 

    angular 
     .module('app') 
     .factory('appService', Service); 

    function Service($http) { 

     function getData() { 
      var request = new XMLHttpRequest(); 
      request.open('GET', 'mock.json', false); 
      request.send(null); 

      return [request.status, request.response, {}]; 
     } 

     return {}; 
    } 
})(); 

mock.jsonが同じフォルダ内にあります。

(function() { 
    'use strict'; 

    angular.module('app') 
     .controller('appCtrl', appCtrl); 

    /** @ngInject */ 
    function appCtrl(appService) { 
     console.log(appService.getData()); 
    } 
})(); 

しかし、それは私にエラー与える::

それから私は、コントローラからそれを呼び出そう

TypeError: appService.getData is not a function

は私が間違って何をやっているの?

答えて

4

空のオブジェクトが返されているため、予想されるエラーが発生しています。

function Service($http) { 

    function getData() { 
     var request = new XMLHttpRequest(); 
     request.open('GET', 'mock.json', false); 
     request.send(null); 
     return [request.status, request.response, {}]; 
    } 

    //Here return the function reference of getData 
    return { 
     getData : getData 
    }; 
} 
1
あなたは自分の Service

return { 
    getData: getData 
} 
に適切なプロパティを持つオブジェクトを返すために不足している