Vue.js вызов метода в данных

#javascript #vue.js

Вопрос:

Я новичок в vue.js и я хочу вызвать метод в данных, поэтому что-то вроде этого:

 data() {
        return {
            title: capitalizeFirstLetter('title'),
        };
    },
 

и мой микс vue, который я импортировал в свой main.js

 Vue.mixin({
  methods: {
    capitalizeFirstLetter(str) {
        return str.charAt(0).toUpperCase()   str.slice(1);
    }    
  }
})
 

но это не работает, я не могу capitalizeFirstLetter ввести данные. Можно ли вызвать метод в данных?

Ответ №1:

Вам нужно использовать this

 title: this.capitalizeFirstLetter('title'),
 

Комментарии:

1. это исправило ситуацию 😛

2. Хороший приятель 🙂 если мой очень умный ответ :)) помог вам, пожалуйста, примите его 🙂

3. да, просто попросил меня подождать 5 минут, прежде чем принять это как ответ

4. Спасибо за ура 🙂

Ответ №2:

Пожалуйста, убедитесь, что вы зарегистрировали компонент mixin в компоненте с помощью mixin property в компоненте.

После этого вы можете получить доступ capitalizeFirstLetter к методу, определенному внутри миксина, используя this.capitalizeFirstLetter

Рабочая скрипка

 const myMixin = {
  methods: {
    capitalizeFirstLetter(str) {
      return str.charAt(0).toUpperCase()   str.slice(1);
    }
  }
}

new Vue({
  el: "#app",
  mixins: [myMixin],
  data() {
    return {
      title: this.capitalizeFirstLetter('title'),
    };
  },
}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  {{ title }}
</div> 

Комментарии:

1. спасибо, это помогло

2. Пожалуйста. Я думаю, что вы можете одобрить другой ответ, потому что мне потребовалось некоторое время, чтобы составить ответ с примером.