Filter with VueJS

I am very new with VueJS so my question is very simple. I cannot use vue filter. Please help me fix the problem. My html file is shown as followed. When I try this code the item in v-for can't be shown and also the it has error Failed to resolve filter: uppercase. Can any one tell me why?

    <div id="pan" class="pan">
     <div v-for="item in list|orderBy 'level'" >{{}}</div>
        <span>{{message | uppercase}}</span>

<script type="text/javascript" src=""></script>
<script type="text/javascript">

    var pan = new Vue({
  el: '#pan',

  data: {
    list: [
      { name: '??', id:"TOKYO",level:"2"},
      { name: '??',id:"JAPAN",level:"1" },
      { name: '??',id:"KANTO",level:"0"  },





If you are using vuejs2, with vuejs2 uppercase filter has been removed. You will have to use toUpperCase() for this, like following:


see demo.

Similarly orderBy filter also has been removed, vuejs2 suggests to use lodash’s orderBy (or possibly sortBy) in a computed property:


<p v-for="item in orderedList">{{ }}</p>


computed: {
  orderedList: function () {
    return _.orderBy(this.list, 'level')

Here is demo with orderBy.


You can use a computed property.


<div id="pan" class="pan">
     <div v-for="item in orderedList" >{{ }}</div>
     <span class="pan__title">{{ message }}</span>

Definition inside of Vue:

    sortKey : 'level'
computed : {
    orderedList(){ return this.list.sort(this.sorter) }
methods : {
    sorter(a,b){ return a[this.sortKey] > b[this.sortKey] }

And then you can change order of the elements in orderedList by modifying sortKey (using v-model="sortKey" to any kind of input, like <select></select> or any other way).

Here is an example based on your code

And what about uppercase, I prefer to control a view with css, and text-transform property can solve this: .pan__title { text-transform: uppercase; }. But you can define a computed property for this one too or keep it inline with {{ message.toUpperCase() }}.


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.