2016-11-09 2 views
8

Я повышен до Vue.js 2.0.5 и OrderBy в V-для-видимому, не будет работать большеVue.js: не может OrderBy в v-за

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

выходы

  • некорректное выражение: V-для = "C в помещениях | OrderBy" last_iteraction"

кто-нибудь знает, как решить?

+0

'last_iteraction' или' last_interaction'? – haim770

+0

'last_iteraction' в этом случае. Это не работает с каким-либо атрибутом из объекта «комната». –

+1

см., Что [Docs] (https://vuejs.org/v2/guide/migration.html#Replacing-the-orderBy-Filter) –

ответ

25

orderBy Фильтр удаляется в vue.js v-2.

Цитируется vue.js Документах

Вместо того, чтобы:

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

OrderBy Используйте lodash (или, возможно, 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

+2

Я потратил некоторое время на поиск некоторой информации о orderBy в v2 и не нашел эту ссылку. Благодаря! –

+2

Нужно ли загружать библиотеку lodash, чтобы использовать функцию orderBy? – lewis4u

+1

Да - вы можете установить lodash в свой проект и добавить его в свой компонент: 'import _ from 'lodash'' – kanga

2

Вы также можете использовать фильтры 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')"> 

Существует список предопределенных filters.check оно вне.

Ссылка:

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

Смежные вопросы