gpt4 book ai didi

configuration - AngularJS "Constant"工厂

转载 作者:行者123 更新时间:2023-12-04 12:48:24 25 4
gpt4 key购买 nike

我正在努力在 AngularJS 中设置配置文件。是否可以在 AngularJS 中创建一个无法覆盖其 key 的工厂?比如我可以这样设置一个常量,不能被覆盖

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')并让事情仍然按预期工作。

我试过注入(inject)常量,但据我所知,这是不可能的。如何防止我的工厂声明被覆盖?我意识到在描述我想要的东西时,常量可能不是正确的术语,但我确实希望工厂的函数定义是常量。

最佳答案

javascript 中的一切都是可变的,所以设置这样的东西很棘手,而且永远不会完全安全。我在 Angular 代码中环顾四周,没有发现任何证据表明您似乎要求使用任何保护机制。

我的建议是忍受风险。除了测试和漂亮的长名称之外,不值得尝试保护自己。我假设你被咬过一次,但我认为机会非常低,除非你用非常短的名称定义工厂。

关于configuration - AngularJS "Constant"工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com