在条件语句中使用 Vue.js 过滤器

VBA*_*ole 5 vue.js

我正在使用vue-currency-filter

而且效果很好。但有时它过滤的值在我的应用程序中不是数字。当发生这种情况时,它只显示 $0。我希望它显示不是数字的文本值。当我有 345.23 时,我得到 345.23 美元,当我有“无限制”时,我得到 0 美元,我真的想要“无限制”

我试图在我的观点中包含一个三元,但它失败了。我认为这与有关。我得到了但我如何用方法解决这个问题?

这是我的相关视图html:

<div>{{ ch.Limit | currency }}</div>
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情:

<div>{{ Number.isNaN(ch.Limit) ? ch.Limit : ch.Limit | currency }}</div>
Run Code Online (Sandbox Code Playgroud)

这不起作用。我也尝试创建一个这样的方法:

valueIsCurrency(k) {
  return Number.isNaN(k) ? k | currency : k;
},
Run Code Online (Sandbox Code Playgroud)

加上:

<div>{{ valueIsCurrency(ch.Limit) }}</div>
Run Code Online (Sandbox Code Playgroud)

但该方法不考虑货币过滤器。我想它仅用于渲染 html 部分。我怎样才能解决这个问题?

And*_*hiu 13

模板

<div v-if="isNumber(ch.Limit)">{{ ch.Limit | currency }}</div>
<div v-else>{{ ch.Limit }}</div>
Run Code Online (Sandbox Code Playgroud)

代码

methods: {
  isNumber(n) {
    return typeof n === 'number';
  }
}
Run Code Online (Sandbox Code Playgroud)

  • @AndreiGheorghiu 问题是它为人们将 SO 视为敌对地方创造了另一个原因。用选票威胁是没有成效或礼貌的。 (2认同)