Vue.js:无法在v-for中订购

时间:2016-11-09 17:18:33

标签: javascript vue.js

我已升级到Vue.js 2.0.5并且v-for中的orderBy似乎不再起作用了

<li v-for="c in rooms | orderBy 'last_iteraction'">

输出

  
      
  • 表达式无效:v-for =“c in rooms | orderBy'last_iteraction'”
  •   
谁知道如何解决?

2 个答案:

答案 0 :(得分:60)

在vue.js v-2中删除了orderBy过滤器。

引自vue.js docs

而不是:

  

<p v-for="user in users | orderBy 'name'">{{ user.name }}</p>

在计算属性中使用lodash的orderBy(或者可能是sortBy):

  

<p v-for="user in orderedUsers">{{ user.name }}</p>

computed: {
  orderedUsers: function () {
    return _.orderBy(this.users, 'name')
  }
}

参考:

https://vuejs.org/v2/guide/migration.html#Replacing-the-orderBy-Filter

答案 1 :(得分:11)

您也可以使用vue2过滤器包。

1)首先使用npm安装它。

npm install vue2-filters

2)然后,将其添加到您的组件中或全局。

import Vue from 'vue'
import Vue2Filters from 'vue2-filters'

Vue.use(Vue2Filters)

3)之后在模板中使用它

<li v-for="c in orderBy(rooms,'last_iteraction')"> 

有一个预定义过滤器列表。检查出来。

<强>参考:

https://github.com/freearhey/vue2-filters

相关问题