我的 AngularJS 应用程序中有以下常量,并希望使用下面所示的函数访问其值。问题是我将键作为字符串传递,但显然如下面的代码所示,它返回未定义,所以我想知道是否有一种方法可以将传递给常量键的字符串转换为返回与该键对应的正确常量值被通过?谢谢
myApp.constant('clients', {
clientData: "clientDetails",
clientList: "clients" });
getConstV : function(Key){
//this one returns clientDetails
console.log(clients.clientData);
//This one FAIL...returns undefined
console.log(clients.Key);
}
我如何调用 getConstE 如下:
getConstV('clientDetails');
最佳答案
你的问题不是AngularJS问题,而是Javascript问题:在Javascript中,你可以通过两种方式访问关联数组:一种是点符号array.key
,另一种是括号符号数组[键]
。如果您使用点分符号,Javascript 会尝试访问关联数组内名为 key
的属性。但是,在您的对象中,不存在具有该名称的属性,并且您将获得 undefined
。相反,括号表示法可让您决定如何访问关联数组(使用常量
或变量
)。回顾一下:这个符号
array["key"]
产生与
相同的结果array.key
但是如果您想要一个灵活的解决方案(使用变量),您必须以这种方式使用括号表示法
array[key]
其中 key
显然是一个变量。
Difference between using bracket (`[]`) and dot (`.`) notation
关于javascript - 访问 AngularJS 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286337/