2

タイトルが示唆しているように、私は最近、Browserify(およびGulp)を使用してAngular JSファイル(Angular sourcefile)単一のファイル(bundle.js)に変換します。Angular JSでBrowserifyを使用する - - コントローラにサービスを渡す

私は別々のファイルに私のコントローラ、サービス、およびディレクティブを分割し、このようBrowserifyを使用して、私のapp.jsファイルにそれらを「必要」にしました

(function() { 
    'use strict'; 
    require('angular'); 

    var tabCtrl = require('./controllers/tabs'), 
    dataService = require('./services/'); 

    angular.module("citiToolsApp", []) 
     .service('dataService', ['$scope', dataService]) 
     .controller('TabController', ['$scope', tabCtrl]); 
}()); 

しかし、私は私にアクセスしようとすると、サービス - dataService - このようなTab Controller内から:

module.exports = function($scope, tabController) { 

    dataService.getPrograms(function (response) { 
     console.log(response.data); 
    }); 

}; 

私は定義されていないエラーが発生します。私はdataServiceをtabControllerに渡す必要があると信じていますが、これを行うための構文は不明です。誰もこれで助けることができますか?

おかげ

EDIT

私はまた、さらに詳細のための私のサービスファイルの内容を追加しました:

module.exports = function($http) { 

    this.getPrograms = function(callback) { 
     $http.get('/programs') 
      .then(callback); 
    }; 

}; 
+0

は、両方の配列の注釈を含め、全体の定義を返す必要があります。私はこれがあなたの問題に対する解決策ではないと言っているが、それは正しい方向への一歩だと思う。 – CodePrimate

+0

お返事ありがとうございます。あなたが意味することの概要を示すコード例を返信してもらえますか?それは本当に助けになるだろう。申し訳ありませんが、私はAngular and Browserifyに少し戸惑いました。 –

答えて

1

私は自分のミスを実現しました。 $ scopeではなく$ httpを渡す必要がありました。だから、代わりに:

(function() { 
    'use strict'; 
    require('angular'); 

    var tabCtrl = require('./controllers/tabs'), 
    dataService = require('./services/'); 

    angular.module("citiToolsApp", []) 
     .service('dataService', ['$scope', dataService]) 
     .controller('TabController', ['$scope', tabCtrl]); 
}()); 

それは次のようになります。tabCtrlとDataServiceの

(function() { 
    'use strict'; 
    require('angular'); 

    var tabCtrl = require('./controllers/tabs'), 
    dataService = require('./services/'); 

    angular.module("citiToolsApp", []) 
     .service('dataService', ['$http', dataService]) 
     .controller('TabController', ['$scope', tabCtrl]); 
}()); 
関連する問題