Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 6,模板解析异常_Javascript_Angular_Typescript_Web - Fatal编程技术网

Javascript Angular 6,模板解析异常

Javascript Angular 6,模板解析异常,javascript,angular,typescript,web,Javascript,Angular,Typescript,Web,这是我的角度代码 <input type="checkbox" [checked]="fields.check3?.5 != undefined && fields.check3?.5 =='on' "> 我的数据如下: "check3": { "5": "on" } 我可以不使用数字作为属性吗? 如何使用相同的数据 谢谢安全导航操作员将自动处理未定义/空部分,在您的情况下,您实际上不需要代码的第一部分,您

这是我的角度代码

<input type="checkbox"  [checked]="fields.check3?.5 != undefined && fields.check3?.5 =='on' ">
我的数据如下:

"check3": {
                "5": "on"
            }
我可以不使用数字作为属性吗? 如何使用相同的数据


谢谢

安全导航操作员将自动处理未定义/空部分,在您的情况下,您实际上不需要代码的第一部分,您也可以使用括号注释访问属性,使用
['5']
将模板代码更改为

input type="checkbox"  [checked]="fields.check3?['5'] =='on' ">

您需要使用括号表示法<代码>字段。选中3?['5']否。根据您的情况,您不需要
=未定义的
部分,只需要
字段。检查3?['5']=='on'
安全导航操作符将自动处理未定义的/空部分
是,但在这种情况下与此无关。即使属性值
未定义
或具有值,第二个条件就足够了(这里使用纯javascript和逻辑条件),OP也在尽可能地使用安全导航。在这里提到为什么点表示法不起作用(语法错误)是这个问题的关键部分。我的意思是这部分不需要检查]=“fields.check3?.5!=未定义这就是我使用的['5]尽管没有解释感谢@Sajeetharan的回答。你的答案并不完全正确,但我找到了前进的方法。我解决了它。保存操作符需要检查check3是否为null。但是是的,['5']有帮助。我仍然不清楚为什么我不能使用点操作符访问此代码中的number属性。@Rajan,属性必须是有效的JavaScript标识符,即字母数字字符序列,还包括下划线(“389;”)和美元符号($”),不能以数字开头。例如,object.$1有效,object.1无效。“属性名“5”不是有效的javascript标识符,因此不能使用点符号,而需要使用括号符号
input type="checkbox"  [checked]="fields.check3?['5'] =='on' ">