使Javascript对象全局可用

使Javascript对象全局可用,javascript,angularjs,Javascript,Angularjs,我想知道如何使JavaScript对象全局可用 我有一个Angular服务,需要从中访问存储为环境变量的公共API密钥。我的计划是在顶部做一个javascript声明,如下所示: <script> MySite.settings = { PublishableKey = [here I retreive the env variable] } </script> 但是我得到一个错误,MySite没有定义 有什么建议吗?好吧,你实际上并没有定义

我想知道如何使JavaScript对象全局可用

我有一个Angular服务,需要从中访问存储为环境变量的公共API密钥。我的计划是在
顶部做一个javascript声明,如下所示:

<script>
  MySite.settings = {
    PublishableKey = [here I retreive the env variable]      
  }
</script>
但是我得到一个错误,
MySite
没有定义


有什么建议吗?

好吧,你实际上并没有定义MySite,只是它的一个属性。请尝试以下方法:

<script>
    var MySite = {
        settings : {
            PublishableKey : 'some_key'
        }
    };
</script>

变量MySite={
设置:{
PublishableKey:'some_key'
}
};

请注意,我使用了
而不是
=
来设置属性;这是正确的语法。

好吧,你实际上并没有定义
MySite
,只是它的一个属性。请尝试以下方法:

<script>
    var MySite = {
        settings : {
            PublishableKey : 'some_key'
        }
    };
</script>

变量MySite={
设置:{
PublishableKey:'some_key'
}
};

请注意,我使用了
而不是
=
来设置属性;这是正确的语法。

这很有效。为什么在
MySite
之后使用
=
,而在
设置之后使用
settings
不是
MySite
的属性吗?我们需要使用
来设置属性?@MikeC使用
MySite=
,我正在设置一个变量。使用
{foo:'bar'}
,我正在初始化一个属性。两者只是使用不同的语法。顺便说一下,请记住接受这个答案!:)非常感谢。学到了一些新东西。如果你把它改成一个明确定义的全局变量,你会得到我的支持。这很有效。为什么在
MySite
之后使用
=
,而在
设置之后使用
settings
不是
MySite
的属性吗?我们需要使用
来设置属性?@MikeC使用
MySite=
,我正在设置一个变量。使用
{foo:'bar'}
,我正在初始化一个属性。两者只是使用不同的语法。顺便说一下,请记住接受这个答案!:)非常感谢。学到了一些新东西。如果您将此更改为显式定义的全局,您将获得我的支持。