Ian*_*ter 7 configuration factory constants angularjs
我正在设置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
}
});
Run Code Online (Sandbox Code Playgroud)
上面的工厂可以被覆盖,允许另一段代码拥有module.factory('animals',function(){ return 7 })
并破坏一切.但是,作为工厂,个别值可以(并且应该)可以覆盖,因此我应该能够分配module.value('catSound','hiss')
并使事情仍然按预期工作.
我已经尝试过注入常量,但据我所知,这是不可能的.如何防止我的工厂声明被覆盖?我意识到在描述我想要的东西时,常量可能不是正确的术语,但我确实希望工厂的函数定义是恒定的.
在 JavaScript 中,一切都是可变的,因此设置这样的东西很棘手,而且永远不会完全安全。我环顾了角度代码,没有发现任何证据表明有任何像您所要求的保护机制的尝试。
我的建议是承担风险。除了测试和好听的长名字之外,不值得尝试保护自己。我假设你被咬过一次,但我认为可能性很低,除非你用非常短的名称定义工厂。
归档时间: |
|
查看次数: |
4349 次 |
最近记录: |