javascript - 嵌套命名空间 JavaScript

标签 javascript namespaces nested

我正在用 javascript 编写一个用户界面,它将从 HTML 中获取数据并使用 javascript 通过 API 传递数据。我试图获取数据并将其传递给函数,而无需编写一堆 if 语句。但是,某些操作的操作在其他 Controller 中具有相同的名称。所以我有一个嵌套的命名空间,现在我无法访问嵌套的函数。希望有人能帮忙。

在此之前一切正常。

var apiHandler = {
    user: {
        login: function(){
            console.log("test");
        }

    }
};

function callAPI(apiObject){
            //console.log(apiObject);
    var apiData = JSON.stringify(apiObject);
    $.ajax({
        type: "POST",
        url: 'https://dev.tragicstudios.com/clients/trego/api/index.php',
        data: {'enc_request':apiData},
        dataType: 'json',           
        success: function(data){
            var apiFunction = apiObject.controller+"."+apiObject.action;
            console.log(apiFunction);
            apiHandler["user.login"]();
            return data;
        }           
    });
}

最佳答案

只需将 Controller 和操作部分用作单独的键,而不是将它们组合起来:

apiHandler[apiObject.controller][apiObject.action]();

关于javascript - 嵌套命名空间 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28574982/

相关文章:

php - 在各自的列中显示嵌套的数组键值php html

javascript - 如何增加div的点击面积?

c++ - 用最近定义的结构替换前向声明的结构

Javascript - 隐藏列的复选框

java - 如何在使用 javax.xml.crypto.dsig.* 签署 XML 文件时添加命名空间?

Python:删除子类中的类属性

html - 嵌套 CSS 表格 - 嵌套表格宽度是第一列的宽度

javascript - 搜索嵌套的 javascript 对象,获取祖先数组

javascript - ng-repeat 类型错误 : Cannot read property 'insertBefore' of null

javascript - 在 mouseover 和 mouseleave 事件上触发操作