AngularJS常量有一些逻辑

时间:2016-12-09 18:13:46

标签: angularjs json static

我的AngularJS App中有以下常量块

// Constants
.constant('config', {
    appName: 'MyApp',
    appVersion: 1.0,
    apiUrl: 'http://'+window.location.hostname+':8080'
});

应用程序的其余部分使用config.apiUrl来使用apiUrl Constant。我想要发生以下事情

 // Constants
    .constant('config', {
        appName: 'MyApp',
        appVersion: 1.0,
        apiUrl:{"outer":"{'inner':{'key':'apValue'}}"}  
    });

我需要解析JSON并提供apiValue作为apiUrl。如何在此文件中使用JavaScript?

我希望客户端继续使用config.apiUrl,因此需要在此文件中完成所有解析

2 个答案:

答案 0 :(得分:0)

您可以在apiUrl字符串上执行 JSON.parse 。在那之前, 确保apiUrl的值处于正确的字符串化JSON结构中,如下所示:

// Constants
.constant('config', {
    appName: 'MyApp',
    appVersion: 1.0,
    apiUrl:JSON.parse('{"outer":{"inner":{"key":"apiValue"}}}').‌​outer.inner.key
});

如果您将apiUrl作为对象,请执行

JSON.stringify({"outer":{"inner":{"key":"apiValue"}}}) 

并将其分配给 config.apiUrl

因此,当您想要阅读apiValue时,可以通过执行以下操作将其作为对象引用:

JSON.parse(config.apiUrl);

有关JSON方法的更多信息here

答案 1 :(得分:0)

以下是我要尝试的内容:

.constant('config', {
    appName: 'MyApp',
    appVersion: 1.0,
    // apiUrl:{"outer":"{'inner':{'key':'apiValue'}}"}
    apiUrl: JSON.parse({"outer":"{'inner':{'key':'apiValue'}}".replace("'", '"')}['outer'])['inner']['key']
});