Вычисляемое свойство может иметь только одно кэшированное значение для Vue экземпляра. В этом случае вы, кажется, пытаетесь вычислить значение на основе текущего элемента. Вычисленное свойство не имеет этого контекста.
В общем случае вычисляемое свойство не должно пытаться получить доступ к DOM. DOM не реагирует и не будет запускать обновления свойств. Кроме того, DOM может не существовать в тот момент, когда свойство оценивается впервые.
Я полагаю, что в этом случае конкретная проблема c заключается в том, что this
будет экземпляром Vue, а не элементом DOM так что $(this)
не будет ничего соответствовать. Вы можете попробовать добавить некоторые записи консоли внутри rowReportID
для подтверждения.
Вместо использования вычисляемого свойства вы можете использовать метод. Чтобы получить доступ к DOM-узлу, вам нужно получить его из собственного объекта события браузера, который Vue представляет как $event
:
@click="modalRequest(index, ind, value, rowReportID($event))"
с:
methods: {
rowReportID(event) {
return $(event.target).parent().data('reportid');
}
}
Там на самом деле нет необходимости использовать jQuery здесь, вы можете сделать это с помощью нативных DOM API так же легко. jQuery обычно не требуется при использовании Vue.
Далее, если только нет действительно веской причины для извлечения этого атрибута из DOM, вам следует вообще избегать этого этапа. Вместо этого вы можете сделать что-то вроде этого:
@click="modalRequest(index, ind, value, modifiedRows[index].id)"