【问题标题】:Meteor: How to use object names including dashes in SpacebarsMeteor:如何使用对象名称,包括空格键中的破折号
【发布时间】:2016-09-06 20:46:04
【问题描述】:

在任何地方都找不到答案,但也许你们中的一个人知道。

我正在从 http.call('GET') 取回数据,我可以在 空格键之类的

{{anydata.specificdata}}  

但没有机会使用对象名称包含破折号的数据,例如

{{anydata.specific-data}}

我试过了

{{anydata.'specific-data'}}

,但这也不起作用。 由于我正在检索大量不同的数据,因此我希望避免为每个包含破折号的字段创建帮助器。

有谁知道我如何处理类似的事情

{{anydata.specific-data}?

感谢任何有帮助的回答。

玩得开心!

【问题讨论】:

  • {{anydata['specific-data']}} 呢?
  • {{anydata('specific-data')}} 它应该与 () 一起使用
  • 感谢你们,我尝试了这两个选项,第一个不输出任何内容,第二个抛出 Meteor 服务器错误...

标签: meteor meteor-blaze


【解决方案1】:

我在流星表格上找到了答案:https://forums.meteor.com/t/dash-character-in-spacebars/2885

我遇到了类似的问题。我有一个 json 对象,变量名中有一个破折号。为了使用破折号调用对象,需要执行以下操作:

{{some.json.object.[with-a-dash]}}

注意 .在左括号之前,并且在名为 item 的破折号周围没有引号(单引号或双引号)。

【讨论】:

  • 这实际上是唯一的一个!
【解决方案2】:

在 HTTP 成功回调中,将数据对象属性从破折号映射到驼峰式,然后使用您的新对象。

【讨论】:

  • 解决这个问题,会得到结果,很困难,因为输入对象始终是对象和数组的混合体,但我正在更进一步,..
  • 没试过,但是有这个...npmjs.com/package/camelcase-keys
【解决方案3】:

几天后离线...

我没有找到一个很好的解决方案(由于 htpp 结果中的数组和对象的组合出人意料),但是一个可行的解决方案:

我使用 EJSON.stringify() 将 http-result 字符串化并使用正则表达式替换对象键中的破折号,然后使用 EJSON.parse() 再次使其成为对象。完成。

不是很优雅,但运行良好且快速。

玩得开心!

【讨论】:

    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2018-07-12
    • 2018-12-27
    • 2013-02-04
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多