无法访问以 http 开头的对象变量

Posted

技术标签:

【中文标题】无法访问以 http 开头的对象变量【英文标题】:Can't access object variable starting with http 【发布时间】:2017-12-08 13:31:39 【问题描述】:

我在我的应用程序中使用了一个名为 profile 的 JSON 对象,我可以在我的 html 中访问它,如下所示:

<pre> profile | json </pre>

这会在我的屏幕上显示以下结果(省略值):


    "sub": "Test",
    "name": "Test",
    "nickname": "Test",
    "picture": "Test",
    "updated_at": "2017-07-05T03:34:49.038Z",
    "http://test.com/roles": [
        "admin",
        "guest"
    ]

我可以按如下方式访问所有变量:

<h3 class="name"> profile?.name </h3>

但我遇到的问题是访问以 http 开头的变量。如果我尝试:

<h3 class="name"> profile?.http://test.com/roles </h3>

我收到意外的令牌错误。

我无法更改此变量的名称是否可以通过其他方式访问它。

谢谢,

【问题讨论】:

【参考方案1】:

javascript 类似,您需要对没有有效 identifier 名称的对象属性使用括号表示法:

<h3 class="name"> profile ? profile['http://test.com/roles'] : '' </h3>

很遗憾,括号表示法不支持安全导航运算符 (?),因此您必须改用三元运算符。

【讨论】:

嘿那里,当我尝试这种格式时,我收到以下错误:未处理的承诺拒绝:模板解析错误:解析器错误:条件表达式配置文件?['test.com/roles'] 最后需要所有 3 个表达式表达式它还在我的编辑器中给了我一个标志,表明:是预期的。 我的错。括号表示法不支持猫王运算符。将更新我的答案。

以上是关于无法访问以 http 开头的对象变量的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 JSON 对象属性 [重复]

无法以角度访问 $http 响应中的“WWW-authenticate”标头

jquery ui,无法从可拖动函数中访问对象变量

无法访问对象成员变量

访问字典中的对象时可以使用啥来实现

无法访问 SqlTransaction 对象以在 catch 块中回滚