【问题标题】:Vue.js orderBy decimalVue.js orderBy小数
【发布时间】:2015-11-25 12:49:00
【问题描述】:

我有一个对象是数据的集合。在每个项目上都有 - 姓名 - 创建日期 - 价格

我可以让 Vue.js 中的 orderBy 为 name 和 date_created 工作,但它似乎不适用于价格。价格存储在浮点数中。 34.00, 12.00 0.00 等等..

我在这里有什么特别需要做的吗?

我已经尝试将 vue 更新到最新版本,但仍然没有修复。

当我按“价格”订购时,它会重新订购商品,但方式不正确。它目前订购了 4 件商品,如下所述;

0.00
57.00
7.00
88.40

颠倒此顺序将执行上述操作,但相反。

感谢任何人对此有所启发。

【问题讨论】:

  • 这种排序看起来是基于字符串的。您的价格是真的存储为浮点数还是实际上是字符串?
  • 价格存储在浮点数中。我已更改数据库以将它们存储在 INT 值中,现在修复了 orderBy 问题。

标签: javascript vue.js


【解决方案1】:

您可能正在排序为字符串,而不是数字。

如果您尝试按小数排序,它可以正常工作(包括一些小数格式):

var demo = new Vue({
  el: '#demo',
  data: {
    items: [
      { price: 0.00 },
      { price: 57.00 },
      { price: 7.00 },
      { price: 88.40 }
    ]
  }
});

<ul id="demo">
  <li v-repeat="items | orderBy 'price'" >
   {{price.toFixed(2);}}
  </li>
</ul>

小提琴:http://jsfiddle.net/56LLvvw8/

【讨论】:

  • 感谢您确认它有效。事实证明,我将小数点作为“十进制”类型存储在数据库中。一旦我将其更改为“FLOAT”,一切似乎都可以正常工作。
猜你喜欢
  • 2015-12-26
  • 1970-01-01
  • 2020-05-15
  • 2018-12-07
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多