我遇到类似这样的问题:see link
我需要确定是否存在给定的 SUBproperty 。我的json看起来像这样
{
"nodeX": {
"sub_node1": {
"items": {
"A": "something",
"B": "etc"
}
},
"sub_node2": {
"items": {
"A": "another thing",
"B": "blablabla",
"C": {
"top": 50,
"left": 75
}
}
}
}
}
如何制作IF语句以查看nodeX.sub_node2.items.C是否存在?
如果我这样做,我会收到错误: {{if $ {nodeX.sub_node2.items.C}} ... {{/ if}}
答案 0 :(得分:0)
当您尝试访问Object
上不存在的属性时,会返回undefined
,其中当然不会有任何属性。
你需要构建这个错综复杂的支票......
if (nodeX && nodeX.sub_node2 && nodeX.sub_node2.items && nodeX.sub_node2.items.C) {
}
答案 1 :(得分:0)
jQuery模板对顶级对象(您的数据上下文)使用JavaScript with()表示法,因此要测试它,您必须使用
typeof nodeX === 'undefined' ? valueIfUndefined : nodeX
然后检查是否存在子对象,您应该可以
('sub_node1' in nodeX) ? 'yes!' : 'no!'
如果您只是有条件地显示属性,您实际上可以自己跳过检查它们,然后执行
${items.A}${items.C}
因为框架实际上是在填充模板时为您执行这些检查。如果属性不存在,则不会尝试执行语句。
答案 2 :(得分:0)
IF声明如下:
{{if typeof nodeX.sub_node2.items.C !== "undefined"}}