Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问AngularJS常量_Javascript_Angularjs_Associative Array - Fatal编程技术网

Javascript 访问AngularJS常量

Javascript 访问AngularJS常量,javascript,angularjs,associative-array,Javascript,Angularjs,Associative Array,我在AngularJS应用程序中有以下常量,希望使用下面显示的函数访问其值。问题是我将键作为字符串传递,但很明显,如下面的代码所示,它返回的是未定义的,所以我想知道是否有一种方法可以将传递的字符串转换为常量键,以便返回与传递的键对应的正确常量值?谢谢 myApp.constant('clients', { clientData: "clientDetails", clientList: "clients" }); getConstV : function(Key){

我在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');

您是否注入了
客户机
常量

angular.module('myAngularApp')
    .factory('MyService', function (clients) {
        ...
        function getConstV (Key){
            console.log(clients.clientData);   
        }  
        ...              
    }
}

您是否注入了
客户机
常量

angular.module('myAngularApp')
    .factory('MyService', function (clients) {
        ...
        function getConstV (Key){
            console.log(clients.clientData);   
        }  
        ...              
    }
}

您是否注入了
客户机
常量

angular.module('myAngularApp')
    .factory('MyService', function (clients) {
        ...
        function getConstV (Key){
            console.log(clients.clientData);   
        }  
        ...              
    }
}

您是否注入了
客户机
常量

angular.module('myAngularApp')
    .factory('MyService', function (clients) {
        ...
        function getConstV (Key){
            console.log(clients.clientData);   
        }  
        ...              
    }
}

您的问题不是AngularJS问题,而是Javascript问题:在Javascript中,您可以通过两种方式访问关联数组:一种是点符号
array.key
,另一种是括号符号
array[key]
。如果使用虚线表示法,Javascript将尝试访问关联数组中名为
key
的属性。但是,在对象中,没有具有该名称的属性,您将获得
未定义的
。相反,括号表示法允许您决定如何访问关联数组(使用
常量
变量
)。重述一下:这个符号

array["key"]
产生与相同的结果

array.key
但是,如果您想要一个灵活的解决方案(使用变量),那么必须以这种方式使用括号表示法

array[key]
其中
显然是一个变量


您的问题不是AngularJS问题,而是Javascript问题:在Javascript中,您可以通过两种方式访问关联数组:一种是点符号
数组.key
,另一种是括号符号
数组[key]
。如果使用虚线表示法,Javascript将尝试访问关联数组中名为
key
的属性。但是,在对象中,没有具有该名称的属性,您将获得
未定义的
。相反,括号表示法允许您决定如何访问关联数组(使用
常量
变量
)。重述一下:这个符号

array["key"]
产生与相同的结果

array.key
但是,如果您想要一个灵活的解决方案(使用变量),那么必须以这种方式使用括号表示法

array[key]
其中
显然是一个变量


您的问题不是AngularJS问题,而是Javascript问题:在Javascript中,您可以通过两种方式访问关联数组:一种是点符号
数组.key
,另一种是括号符号
数组[key]
。如果使用虚线表示法,Javascript将尝试访问关联数组中名为
key
的属性。但是,在对象中,没有具有该名称的属性,您将获得
未定义的
。相反,括号表示法允许您决定如何访问关联数组(使用
常量
变量
)。重述一下:这个符号

array["key"]
产生与相同的结果

array.key
但是,如果您想要一个灵活的解决方案(使用变量),那么必须以这种方式使用括号表示法

array[key]
其中
显然是一个变量


您的问题不是AngularJS问题,而是Javascript问题:在Javascript中,您可以通过两种方式访问关联数组:一种是点符号
数组.key
,另一种是括号符号
数组[key]
。如果使用虚线表示法,Javascript将尝试访问关联数组中名为
key
的属性。但是,在对象中,没有具有该名称的属性,您将获得
未定义的
。相反,括号表示法允许您决定如何访问关联数组(使用
常量
变量
)。重述一下:这个符号

array["key"]
产生与相同的结果

array.key
但是,如果您想要一个灵活的解决方案(使用变量),那么必须以这种方式使用括号表示法

array[key]
其中
显然是一个变量


Mmh…如果您尝试编写console.log(clients[key]),而不是console.log(clients.key)?@superpuccio要接受您的答案(这是正确的),您必须将其作为答案发布,您可以这样做吗?我试图尽可能清楚地回答,我很高兴我帮助了您!嗯……如果你试着写console.log(clients[key]),而不是console.log(clients.key)?@superpuccio要接受你的答案(这是正确的),你必须将它作为答案发布,你能这样做吗?我试着尽可能清楚地回答,我很高兴我帮助了你!嗯……如果你试着写console.log(clients[key]),而不是console.log(clients.key)?@superpuccio要接受你的答案(这是正确的),你必须将它作为答案发布,你能这样做吗?我试着尽可能清楚地回答,我很高兴我帮助了你!嗯……如果你试着写console.log(clients[key]),而不是console.log(clients.key)?@superpuccio要接受你的答案(这是正确的),你必须将它作为答案发布,你能这样做吗?我试着尽可能清楚地回答,我很高兴我帮助了你!