AngularJSで、定数を他の定数で定義する方法はありますか?
2023-09-26 09:04:53
質問
定数を他の定数で定義しようとしているのですが、必要な定数が必要とするときに初期定数が準備できていないため、定義できないようです。私はこれが全く不可能であるかどうかを確認したいです。
現在、私はこの方法で定数を持っています。
angular.module('mainApp.config', [])
.constant('RESOURCE_USERS_DOMAIN', 'http://127.0.0.1:8008')
.constant('RESOURCE_USERS_API', 'http://127.0.0.1:8008/users')
// Specific routes for API
.constant('API_BASIC_INFORMATION', RESOURCE_USERS_API + '/api/info')
.constant('API_SOCIAL_NETWORKS', RESOURCE_USERS_API + '/api/social')
;
2番目の2つの定数は、私が実現したいことです。
どのように解決するのですか?
AngularJSでは、コントローラやサービスなどの依存関係を定義する方法として、依存性注入(DI)があります。つまり、サービスBに依存するコントローラAがある場合、次のように作成する必要があります。
var myApp = angular.module("exampleApp",[]);
myApp.controller("aCtrl", function(serviceB){
// Controller functionally here
});
ほら、AngularJSはserviceBの依存関係をチェックして、その名前で作成したサービスを探します。もし、作成していなければ、エラーが発生します。
ですから、定数Bに依存する定数Aを作りたい場合、AはBに依存しているとAngularに伝える必要があります。定数は関数を返すことができますが、DIは定数のために動作しません。これを見てください フィドル で、どのメソッドに対してDIが効くか確認できます。
というわけで、質問に答えると、定数を他の定数で定義することはできない。
でも、こんなことはできます。
angular.module('projectApp', [])
.constant('domain', 'http://somedomain.com')
.constant('api', '/some/api/info')
.service('urls', function(domain, api) {this.apiUrl = domain + api;})
.controller('mainCtrl',function($scope,urls) {
$scope.url = urls.apiUrl;
});
これを確認する フィドル で動作を確認してください。
DIについてもっと理解したい場合は、以下を参照してください。 ポスト .
関連
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
[解決済み] 検索エンジンはAngularJSアプリケーションをどのように扱っているのか?
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?
-
[解決済み] AngularJSでチェックボックスの値のリストにバインドするにはどうすればいいですか?
-
[解決済み] AngularJS 。非同期データでサービスを初期化する
-
[解決済み] AngularJSでコントローラ間の通信を行う正しい方法は何ですか?
-
[解決済み] AngularJSでEnterキーを押したときにフォームを送信する
-
[解決済み】AngularJSのng-styleで条件式が使えるようになりました。
-
[解決済み】AngularJSで属性を条件付きで適用するための最良の方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: window.initMap is not a function
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] AngularJSでkeypressイベントを使用するには?
-
[解決済み] 誰かangularjsの$qサービスの使用について説明してください。[重複しています]。
-
[解決済み] AngularJSで画像を表示する
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] angular.serviceとangular.factoryの比較
-
[解決済み] コントローラでフィルタを使用するには?