我们在Angular 2中实现了一个结构指令,仅显示具有特定角色的用户的内容。在生产系统中,一切正常。
ProjectReference
当我们使用TestBed实施一些测试时,出现了问题。 如果我们使用角色作为仅包含字母和数字的输入(例如APP1role1),一切正常。如果我们使用冒号角色等。 (例如APP1:role1)我们得到一个错误:
模板解析错误: TypeError:无法读取未定义的属性'toUpperCase'
以下是测试结构指令的规范组件:
vcxproj
我很确定角色输入中的':'会导致问题。
有人知道为什么吗?帮助会很棒!
提前致谢
答案 0 :(得分:0)
以星号*
为前缀的结构指令将被评估。您正在传递字符串。
因此,将其替换为以下内容:
*pdHasRole="'` + role + `'"
此外,您使用的是字符串插值字符串,但随后使用常规连接。 您还可以写:
const template = `<div *pdHasRole="'${role}'">Test with role: ${role}</div>`;