Vuejs - Как вызвать смонтированную функцию main.js из другого файла Js

Это код, который я дал в commonValidation.js.

commonValidation.js:

this.$validator.localize('en', {
      messages: {
        required: (field) => '* ' + field + ' is required'
      },
      attributes: {
        email: 'Email'
      } 
    })

Я хочу вызвать указанный выше файл в main.js внутри смонтированной функции, как показано ниже. Но это не работает. Если я дал эту проверку (из commonValidation.js) внутри метода mount() (в main.js), он работает.

основной.js:

import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
import App from './App'
import router from './router'
import VeeValidate from 'vee-validate';
import commonValidation from './commonValidation'

Vue.use(VeeValidate);
Vue.use(BootstrapVue);

new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: {
    App
  },
  mounted()
  {
    commonValidation
  }
})

Пожалуйста, помогите мне вызвать commonValidation.Js внутри mount() в main.js . Заранее спасибо.

Это мой полный файл commonValidation.js

export default {
  mounted() {
    this.$validator.localize('en', {
      messages: {
        required: (field) => '* ' + field + ' is required'
      },
      attributes: {
        email: 'Email'
      } 
    })
  }
}

person Ashwini    schedule 07.05.2018    source источник
comment
Вы можете показать полный файл commonValidation.js:?   -  person Vamsi Krishna    schedule 07.05.2018
comment
Это мой полный файл commonValidation.js: атрибуты: { электронная почта: 'Электронная почта' } }) } }   -  person Ashwini    schedule 07.05.2018


Ответы (1)


Вы экспортируете объект в файл commonValidation.js. Объект нельзя вызывать как функцию.

Я думаю, вы намерены использовать миксин. Миксин — это не что иное, как объект, который содержит повторно используемые параметры компонента в качестве своих свойств.

Поэтому просто зарегистрируйте миксин в корневом компоненте в файле main.js:

//main.js
import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
import App from './App'
import router from './router'
import VeeValidate from 'vee-validate';
import commonValidation from './commonValidation'

Vue.use(VeeValidate);
Vue.use(BootstrapVue);

new Vue({
    el: '#app',
    router,
    template: '<App/>',
    components: {
        App
    },
    mixins : [commonValidation]
}
person Vamsi Krishna    schedule 07.05.2018