从html文件中的脚本标记调用非全局命名空间函数

时间:2015-03-19 09:50:34

标签: javascript html namespaces global

我有一个包含以下内容的JavaScript文件:

(function(){
ApiCall = {};
ApiCall.serviceRoot = "http://Serviceurl/";

ApiCall.GetProducts = function(){
    $.ajax({
        type: "GET",
        url: ApiCall.serviceRoot + "GetProducts",
        data: {},
        cache: false,
        success: function(data) {
            return data;
        },
        error:function(statusCode){
            return statusCode;
        }
    });
};})();

我的html文件中有一个scipt标记:

<script type="text/javascript">alert(ApiCall.GetProducts());</script>

我得到了,Api​​Call没有定义的异常,因为ApiCall不在全局命名空间中,但可以从另一个普通的.js文件访问,所以如何从脚本标签访问它?

或者我在全局命名空间中的另一个javascript文件中添加一个函数来调用ApiCall?当然这是不必要的乱跑?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

谢谢dandavis,

事实证明有些东西阻止我的Api.js文件完成(可能是语法错误)所以当我调用它时,ApiCall是未定义的。

感谢您的帮助!

atmd,揭示模块模式很棒,我将来会用它,谢谢!

谢谢, 沃伦