我一直在尝试使用角度滤镜获取角度常量内的嵌套常量的值。但是我找不到有效的方法来获取价值。我被允许使用lodash“ ^ 2.4.1”,我尝试使用_.pick,但仍然只能访问根级别常量,而不能访问嵌套常量。

//consider this
angular.module('myApp',[])

.constants('appConstants', {
    CONS1: 'root',
    CONS2: {
          NEST1: 'nested cons1',
          NEST2: 'nested cons2',
    }
)
.filter(getConstants, function  () {
    return function  (input) {
        var value =  appConstants[input];
        if (! value) {
            var keys = input.split('.');
            value =  appConstants;
            angular.forEach(keys, function(key, index) {
                value = value[key];
            });
        }
        return value;
    }
});

//where as
appConstants[CONS1]; //works
appConstants[CONS2.NEST1]; // return undefined
//in lodash
_.pick(appConstants, 'CONS2.NEST1'); // returns empty object

最佳答案

您还可以选择使用Angular $parse function。我认为,如果为它提供根常量对象作为上下文参数,这将起作用。

可能看起来像:

$parse(input)(appConstants)

关于javascript - 如何在angularjs中获取嵌套常量的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42277070/

10-09 14:08