【问题标题】:"Uncaught SyntaxError: Unable to parse bindings" about one line if condition“Uncaught SyntaxError: Unable to parse bindings”关于一行 if 条件
【发布时间】: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') }} 在淘汰赛中从未见过,这当然会引发错误

标签: javascript knockout.js


【解决方案1】:

那些括号{{不能在那个点

你可能会误以为习惯了 js-template-engine-libraries 并想要

$data.status.value === '50' ? _('Cancelled') : $data.status.value === '600' ? _('Approved')  :  _('Unknown')

function _(v){} 可能是一些翻译的东西

【讨论】:

  • 我正在使用 {{ _('Cancelled') }} 因为翻译。我在 1 周前解决了这个问题。一个 ' 更多关于代码 :(
猜你喜欢
  • 2012-10-30
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多