我在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");
答案 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]
])
]
]);