【问题标题】:calling non global namespace function from script tags inside html files从 html 文件中的脚本标签调用非全局命名空间函数
【发布时间】:2015-05-22 09:02:39
【问题描述】:

我有一个包含以下内容的 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?这肯定是不必要的吗?

提前感谢您的帮助!

【问题讨论】:

  • 要么查看显示模块模式,要么将其设置为函数内部的全局,即window.ApiCall = {};
  • 我会尝试并回复您,谢谢!
  • 实际上,您已经有一个全局(ApiCall)并且不知道它......您更有可能只是在第一个代码之前运行第二个代码。

标签: javascript html namespaces global


【解决方案1】:

谢谢你,丹达维斯,

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

感谢您的帮助!

atmd,显示模块模式很棒,我以后会使用它,谢谢!

谢谢, 沃伦

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2013-11-19
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多