AngularJS はサービス名間の衝突をどのように処理しますか? たとえば、「foo」というサービスをそれぞれ含む 2 つのモジュールを宣言したとします。再利用可能なモジュールを作成したい場合、または他のサードパーティ モジュールとの衝突を回避したい場合、サービスを "名前空間" にする良い方法は何でしょうか?
16584 次
2 に答える
40
現在、AngularJS はサービスの名前空間の衝突を処理しないため、同じ名前のサービスを持つ 2 つの異なるモジュールがあり、両方のモジュールをアプリに含めると、1 つのサービスしか利用できなくなります。
現時点では、サービス名にカスタム プレフィックスを付けることをお勧めします。例:
angular.module('myprefix_mymodule',['dep1', 'dep2']).factory('myprefix_MyService', ...)
于 2013-02-16T11:00:06.520 に答える
8
pkozlowski が指摘したように、そうではありません。すべてのサービスに手動でプレフィックスを追加できます (これはちょっと面倒です)。代わりに、名前空間のハックを書きました。 https://github.com/callmehiphop/angular-namespacer
于 2013-10-23T17:54:26.360 に答える