@Nik1712

Как передать атрибут в метод vue?

Есть скрипт
var pathArray = location.href.split( '/' );
var protocol = pathArray[0];
var host = pathArray[2];
var url = protocol + '//' + host;

var itemlist = new Vue({
    el: '#itemlist',
    data: {
        json: null
    },
     methods: {
      getVariant: function (event) {
        var good = this.getAttribute('data-id');
        $.getJSON(url + good, function (json) {
          itemlist.json = json;
          console.log(itemlist.json);
      });
    }
  }
});


и html

<li class="color-variant__choose color-variant__choose_<?=$value?>" 
    data-id="12345" //к примеру, но вообще она может быть любой 
    v-on:click="getVariant"
>
</li>


выдает ошибку
vue_app.js:72 Uncaught TypeError: this.getAttribute is not a function

как передать значение атрибута data-id, чтобы не было ошибки?
  • Вопрос задан
  • 1786 просмотров
Решения вопроса 3
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Чтобы получить доступ к DOM объекту в событии: event.target.
Ответ написан
Fragster
@Fragster
помогло? отметь решением!
в данном конкретном случае - event.target.getAttribute, но я бы подумал, зачем дата-атрибут там вообще нужен...
Ответ написан
@fear-cry
Frontend Developer
Можно сразу в метод передавать содержимое атрибута:
<li class="color-variant__choose color-variant__choose_<?=$value?>" 
    v-on:click="getVariant('12345')"
>
</li>

methods: {
      getVariant: function (dataId) {
        $.getJSON(url + dataId, function (json) {
          itemlist.json = json;
          console.log(itemlist.json);
      });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы