SoFunction
Updated on 2025-03-02

Example of method using filters in vue2 v-model/v-text

Custom filters are allowed, which can generally be used in two places: double brace interpolation and v-bind expression (the latter is supported since 2.1.0+). Filters should be added at the end of a JavaScript expression, indicated by the "pipe" symbol:

<!-- In double braces -->
{{ message | capitalize }}

<!-- exist v-bind middle -->
<div v-bind:></div>

Private filters can be defined in the options of a component:

filters: {
  dateFormat: (dataStr) => {
   var time = new Date(dataStr);
  
   function timeAdd0(str) {
    if (str < 10) {
     str = '0' + str;
    }
    return str
   }
   var y = ();
   var m = () + 1;
   var d = ();
   var h = ();
   var mm = ();
   var s = ();
   return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
  }
}

Or define the filter globally before creating a Vue instance:

('dateFormat', (dataStr) => {
 var time = new Date(dataStr);

 function timeAdd0(str) {
  if (str < 10) {
   str = '0' + str;
  }
  return str
 }
 var y = ();
 var m = () + 1;
 var d = ();
 var h = ();
 var mm = ();
 var s = ();
 return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
})

However, if you want to use filters in v-model or v-text, it will not take effect, you can refer to the following writing method:

<template>
 <div >
  <input type="text" v-model="userDate" />  
  <span>{{ userDate | dateFormat }}</span>
 </div>
</template>

<script>
export default {
  data: {
    return {
      userDate:'',
    }
  },
    filters: {
    dateFormat: (dataStr) => {
     var time = new Date(dataStr);
    
     function timeAdd0(str) {
      if (str < 10) {
       str = '0' + str;
      }
      return str
     }
     var y = ();
     var m = () + 1;
     var d = ();
     var h = ();
     var mm = ();
     var s = ();
     return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
    }
  }
}
</script>

<style>
</style>

The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.