2

これはHow to inherit from base provider (not the provider factory)のフォローアップです。. 提案されたソリューションは、(Angular 1.4 でのみ実行できる)angular.extendとの組み合わせを提案して、基本プロバイダーの実装を他のすべてのプロバイダーにコピーします。angular.copyangular.merge

しかし、これは私が予期していなかった別の問題につながりました。この手法により、プロパティprovider.setXへの直接アクセスとともに、関数を介してプロバイダーを構成できるようになりました。provider.config.x

この問題を示す例を次に示します。

4

1 に答える 1

1

何を求めているのかよくわかりませんがthis.config.x、変数ではなくプロパティであるため、アクセス可能です。

アクセスできないようにする場合var config = {}は、コントローラー/サービス/ファクトリー/設定している場所のスコープ内でローカル変数として宣言する必要があります。関数/メソッド内のローカル変数は、クロージャーでない限り、スコープ外ではアクセスできないためです。

BaseClientこれは、触れることができないローカル変数を含む関数 (プロバイダーではなく、単なる通常の関数) をインスタンス化するコードのバージョンです。繰り返しますが、あなたが解決しようとしている問題がわからないので、これがあなたの求めているものかどうかわかりません。

http://codepen.io/anon/pen/ZGazqo?editors=101

于 2015-06-21T23:37:07.697 に答える