Angular 2 ngClass:在尝试在 html 上显示 json 时获取预期表达式的插值 ()

Posted

技术标签:

【中文标题】Angular 2 ngClass:在尝试在 html 上显示 json 时获取预期表达式的插值 ()【英文标题】:Angular 2 ngClass: Get Got interpolation () where expression was expected when trying to display json on htmlAngular 2 ngClass:在尝试在 html 上显示 json 时获取预期表达式的插值 () 【发布时间】:2017-02-16 17:55:40 【问题描述】:

我是 Angular 2 的新手,希望能从社区获得一些帮助。我目前正在尝试在我的 html 视图的 <tr> 元素中实现 ngClass 的动态/条件实现。使用的 trufy 是一个变量,其原始值来自我的 Componenet 上设置的 JSON 对象:

<td [ngClass] = "weak : jsonInMyComponenet.element, neutral : !jsonInMyComponenet.element"  ></td>

当我使用上面的代码时,我得到了这个错误:

在预期表达式的位置得到插值 ()

如果我删除大括号,我不会收到任何错误,但页面不会呈现元素,所以我看不到弱或中性的类实现。我做错了什么?

【问题讨论】:

【参考方案1】:

不要同时使用[...]...。一个或另一个。

<td [ngClass] = "'weak' : jsonInMyComponenet.element, 'neutral' : !jsonInMyComponenet.element"  ></td>

... 用于字符串插值。 [...] 将值解释为表达式。

【讨论】:

谢谢 Gunter,是的,我删除了它,但是该类没有呈现。它将使单元格的背景颜色为红色或灰色,并且当前为白色。我不确定,如果我的 json 数据不正确: "jsonInMyComponenet": true, "jsonInMyComponenet1": false, "jsonInMyComponenet2" : true 我忘记了当属性名称是文字名称时,您需要将它们放在引号中。 好的,在这种情况下,应该评估为假的那些呢?我试过 '!jsonInMyComponenet.element' 和 !'!jsonInMyComponenet.element' 但没有渲染 :( !jsonInMyComponenet.element 应该可以,如我的回答中的neutral 所示。

以上是关于Angular 2 ngClass:在尝试在 html 上显示 json 时获取预期表达式的插值 ()的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 - 在 jquery append 中编译 [ngClass]

Angular ngClass 多个三元运算符条件

在Angular中的ngClass中绑定自定义类

Angular - 在第 5 个按钮单击时添加 ngClass

Angular 5:使用 ngClass 切换移动和桌面视图的类

Angular:ngClass 属性中的条件始终被视为真