【发布时间】:2020-07-14 09:25:13
【问题描述】:
因为一个项目,我刚开始接触淘汰js,所以我尝试在data-bind= text中写一个行条件
这是我的代码;
<div
data-bind="text: $data.status.value === '50' ? {{ _('Cancelled') }}
: $data.status.value === '600' ? {{ _('Approved') }}
: {{ _('Unknown') }},
css: { hide: !$data.is_cancelled }"
>
</div>
我得到了这样的错误;
未捕获的语法错误:无法解析绑定。 绑定值: data-bind="text: $data.status.value === '50' ? Anulat : $data.status.value === '600' ?阿布罗瓦 : 内库诺斯切特, CSS:{隐藏:!$data.is_cancelled}“ 消息:意外的标识符
【问题讨论】:
-
虽然我实际上并不熟悉 knockout.js,但我猜你有两个嵌套的三元运算符看起来不对。尝试用括号括住第二个三元运算符(: 和 ? 语法)。
-
您不应该将
{{ ... }}括在单引号中,就像您使用“50”和“600”一样吗?在错误中,{{ _('Cancelled') }}直接扩展为“Anulat”。 -
@SparkFountain 我在控制台上尝试了这个代码块,它可以工作,所以我不认为括号有问题。让 a = '100';一个==='50'? console.log('Cancelled') : a === '600' ? console.log('Approved') : console.log('Unknown')
-
@rid 我认为你在某些方面是对的。我注意到我在 {{ _('Cancelled') }} 之前和之后忘记了 '。我会尝试。谢谢老哥
-
什么是
{{ _('Cancelled') }}在淘汰赛中从未见过,这当然会引发错误