2016-08-29 17 views
1
(function() { 
    angular.module('MyApp') 
     .factory('Contact', Contact); 

    Contact.$inject = ['$http']; 

    function Contact($http) { 
     return { 
      send: function(data) { 
       return $http.post('/contact', data); 
      } 
     }; 
    } 
})(); 

私は上記のコードを見つけました。この

angular.module('MyApp').factory('Contact', function($http){ });

  • よう

    1. 理由だけではなく、注入$httpそれは自己実行機能の中にサービスを置くことが必要である:私はいくつかの混乱がありますか?

  • +0

    1に役立ちます願っています。 https://docs.angularjs.org/guide/diを参照してください。 2)グローバルな名前空間を汚染しないようにすることをお勧めします(http://stackoverflow.com/questions/8862665/what-does-it-mean-global-namespace-would-be-poluted)連絡先 'シンボル – Phil

    答えて

    3

    まず、角度ファイルを最小化しようとすると問題が発生します。あなたのミニマイザーは$ httpを変数bに変換し、$injectを使用すると文字列にIDが保存されます。そうしないとエラーが発生します。

    第2 - 自己実行機能を使用している場合は、サービスのスコープを分離しています。これは、すべてのファイルを1つにまとめるときに役立ちます。同じ名前の変数や関数を実行しないと、エラーが発生します。

    これはJohn Papa's styleguide

    で詳しく説明されているが縮小さならば、それは動作しませんので、それは)

    関連する問題