【问题标题】:handling json properties with name containing @ symbol处理名称包含 @ 符号的 json 属性
【发布时间】:2019-03-14 19:44:55
【问题描述】:

我需要将 UI 更新为 Polymer 3,并且接收到的数据在到达客户端之前从 XML 转换为 json。

在客户端,我使用 Polymer3 模板将值传递给底层聚合物元素。

由于 XML 将值存储在属性中,因此我的 json 如下返回。

{
    @type: "filter",
    @target: "somevalue1",
    @operator: "=",
    @value: "4458"
},
{
    @op: "Or",
    @type: "filter",
    @target: "somevalue2",
    @operator:  "=",
    @value: "4828"
},
{
    @op: "Or",
    @type: "filter",
    @target: "somevalue3",
    @operator: "=",
    @value: "2428"
}

现在,当我将这个属性传递到我的聚合物 3 模板中时,它会将整个内容视为文本并显示在屏幕上。

{{item['@op']}}

按原样显示在屏幕上。另外,我不能如下使用它

{{item.@op}}

我不知道 @ 是否被视为代码,但包含括号 {{}} 的整个文本都显示在屏幕上。

如何处理这些属性。

我无法将其转换为另一个可读对象,因为 UI 已经由于 而需要时间来呈现,并且 json 将在嵌套的内部重复自身。

【问题讨论】:

  • 我不确定聚合物插值是如何工作的,但item['@op'] 是访问对象属性的有效语法。 A comment from this thread 建议您收听polymer-ready 事件。也许,这就是你所缺少的?
  • item['@op'] 可能在 dom-repeat 中不起作用,但在 handleResponse function() 中起作用...尝试将响应 obj 值分配给 this., this.opVal= item['@ op'] .... 并渲染 html., 绑定值 ... [[opVal]]
  • @shabarinath 是对的。我必须将我的组件转换为 LitElement,以便我可以在 DOM 模板中处理它。
  • @HariKrishnaGaddipati .,也许你能支持我的评论或者你能接受我的回答
  • @shabarinath,您应该重新发布您的评论作为答案,以便人们更容易发现它。

标签: javascript json polymer-3.x xml-to-json


【解决方案1】:

转发我的评论作为答案以获得更好的视图

item['@op'] 可能不适用于 dom-repeat,但适用于 handleResponse function()

尝试将响应obj值分配给this

this.opVal= item['@op']render html.,绑定值为[[opVal]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2018-05-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多