7

AngularJS で構成ファイルを設定する作業を行っています。キーを上書きできない AngularJS でファクトリを作成することは可能ですか? たとえば、上書きできない定数を次のように設定できます。

module.constant('animals', {"cat": "meow", "dog": "woof"});

しかし、工場自体ではなく、上書きされたを許可するこのようなことをしたいと思います

module.value('catSound','meow')
      .value('dogSound','woof')
      .factory('animals', ['catSound','dogSound', function(catSound, dogSound) {
            return {
                 "cat": catSound,
                 "dog": dogSound
            }
      });

上記のファクトリは上書きでき、別のコードがmodule.factory('animals',function(){ return 7 })すべてを保持して壊すことができます。ただし、ファクトリとして、個々の値は上書き可能であり、上書き可能である必要があるため、割り当てmodule.value('catSound','hiss')を行っても期待どおりに動作させることができるはずです。

定数に注入しようとしましたが、理解できる限り、それは不可能です。工場宣言が上書きされないようにするにはどうすればよいですか? 私が欲しいものを説明するとき、定数はおそらく正しい用語ではないことを認識していますが、ファクトリの関数定義を定数にしたいと思っています。

4

1 に答える 1

2

JavaScript ではすべてが変更可能であるため、このような設定は難しく、完全にフェールセーフになることはありません。私はAngularコードを見回しましたが、あなたが求めているような保護メカニズムの試みの証拠は見つかりませんでした.

私のアドバイスは、リスクを抱えて生きることです。テストと素敵な長い名前以外で自分自身を守ろうとする価値はありません。一度噛まれたことがあると思いますが、工場を非常に短い名前で定義しない限り、その可能性は非常に低いと思います。

于 2013-04-29T12:24:29.283 に答える