Aurelia TS从地图上拉地图

时间:2018-12-18 17:53:43

标签: aurelia aurelia-framework

我在appConfig.json中定义了一个branch,当我尝试使用.get()从地图中获取值时,我得到一个错误,它不是函数。

这是在我的appConfig.json中

Map<string, Map<string, boolean>>

,并且我在appConfig.ts中将属性设置为: 公共角色权限:Map>;

这是我访问rolePermissions的方式:

"rolePermissions" : [
    {"name" : "Admin", "value" : [
      {"name" : "customerList", "value" : "true"},
      {"name" : "customerDetails", "value" : "true"},
      {"name" : "addCustomerUser", "value" : "true"},
      {"name" : "editCustomer", "value" : "true"},
      {"name" : "updateBackend", "value" : "true"},
      {"name" : "createCustomer", "value" : "true"},
      {"name" : "jobsList", "value" : "true"},
      {"name" : "jobsView", "value" : "true"},
      {"name" : "jobsEdit", "value" : "true"},
      {"name" : "jobsDownload", "value" : "true"},
      {"name" : "usersList", "value" : "true"},
      {"name" : "usersEdit", "value" : "true"},
      {"name" : "usersDelete", "value" : "true"},
      {"name" : "usersCreate", "value" : "true"}
    ]}

当我尝试从地图中提取“ Admin”值时,出现错误:

let rolePerms = this.appConfig.rolePermissions;

let rolePerm = rolePerms.get("Admin");

1 个答案:

答案 0 :(得分:2)

编辑:

我没有发现您的文件是json,尽管原始帖子仍然适用。

如果无法将rolePermissions转换为Map,则需要像常规数组一样对其进行处理:

rolePerms.find(x => x.name === "Admin").value

原始:

初始化rolePermissions的方式是您的问题。 您实际上不是在创建Map,而是在创建数组。 由于get不是数组原型上定义的函数,因此功能get不可用。

这是您需要执行的操作:

const rolePermissions = new Map<string, Map<string, boolean>>(
    [
        [
            "Admin", new Map<string, boolean>([
                ["customerList", true],
                ["customerDetails", true],
                ["addCustomerUser", true],
                ["editCustomer", true],
                ["updateBackend", true],
                ["createCustomer", true],
                ["jobsList", true],
                ["jobsView", true],
                ["jobsEdit", true],
                ["jobsDownload", true],
                ["usersList", true],
                ["usersEdit", true],
                ["usersDelete", true],
                ["usersCreate", true]
            ])
        ]
    ]);