2015-11-10 2 views
10

что у меня есть экземпляр Вью следующим образом:В Вью JS, вызовите фильтр из метода внутри вю экземпляра

new Vue({ 
    el: '#app', 

    data: { 
     word: 'foo', 
    }, 

    filters: { 
     capitalize: function(text) { 
      return text.replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); }); 
     } 
    }, 

    methods: { 
     sendData: function() { 
      var payload = this.$filters.capitalize(this.word); // how? 
     } 
    } 
} 

можно легко использовать фильтр в шаблоне следующим образом:

<span>The word is {{ word | capitalize }}</span> 

Но как я могу использовать этот фильтр из метода экземпляра или вычислимого свойства? (Очевидно, этот пример тривиален, и мои фактические фильтры более сложны).

ответ

0

В дополнение Моррис ответ, это пример файла я обычно использую, чтобы положить фильтры внутри, вы можете использовать в любом режиме, используя этот метод.

var Vue = window.Vue 
var moment = window.moment 

Vue.filter('fecha', value => { 
    return moment.utc(value).local().format('DD MMM YY h:mm A') 
}) 

Vue.filter('ago', value => { 
    return moment.utc(value).local().fromNow() 
}) 

Vue.filter('number', value => { 
    const val = (value/1).toFixed(2).replace('.', ',') 
    return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') 
}) 
Vue.filter('size', value => { 
    const val = (value/1).toFixed(0).replace('.', ',') 
    return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') 
}) 
Смежные вопросы