2017-02-21 3 views
0

自分の角度アプリのサービスのベースURLを設定して、プロジェクトで相対URLを使用できるようにします。角度:以下の方法で設定からメインモジュールに値を渡す方法john papaさんが推奨する角度のベストプラクティス

私はdependency.Theソリューションはhere

あるとしていくつかの基本的な設定データを保存することができます設定モジュールとモジュールを初期化の概念は、後でメインモジュールに注入することができた。しかし、私はまた、ジョン・パパさんをフォローしたいですangular best practices

どういうわけか私はこれらの概念を組み合わせて結果を得ることはできません。

マイベースコントローラ含有コンフィグ

angular.module('app.config', []) 
    .value('app.config', { 
    basePath: 'my-base-url' // Set your base path here 
}); 

マイメインアプリモジュールとコントローラ2番目のパラメータは配列として渡され、値は次のように渡されるチュートリアルで

angular.module('userManage',['ngMaterial', 'ngPassword', 'app.config']) 
.controller('addUserController', addUserController); 


function addUserController($scope, $http, $window){ 
    $scope.pattern1 = /^[a-zA-Z0-9]*$/; 
    $scope.submitForm = function(){ 
    $http({ 
     method : 'POST', 
     url : 'my-relative-url',//(basePath+'relative url') 
     data : $scope.user, 
    }); 
}; 

}

関数のパラメータ、これをジョンパパの推奨する方法で実装する方法

ベースURL値を定数などとして定義するなどの他の解決策がありますが、すべての構成を格納する基本モジュールを定義するのはきれいで簡単です。

答えて

1

valueの名前はあなたの問題を引き起こします。有効なJavaScript変数名を作る名前に固執する。

私はまた、依存関係がその定数、値、工場、サービスを作るようapp.configモジュールを含む、要約すると、一定

angular.module('app.config', []) 
    .constant('BASE_PATH', 'my-base-url'); 

angular.module('userManage',['ngMaterial', 'ngPassword', 'app.config']) 
    .controller('addUserController', addUserController); 


function addUserController($scope, $http, $window, BASE_PATH) { 
    // now you can use BASE_PATH 

を使用することをお勧めしたいと他のプロバイダーを注射に利用できます。

+0

なぜ値の代わりに定数を使うのですか?ありがとうございました – jayadevkv

+1

@jayadevkv他のモジュールによって値が変更されることがありますが、定数はそうではありません。また、定数はモジュール 'config'ブロック内で利用可能です。 – Phil

関連する問題