Я хочу установить для атрибута href значение item.AppUrl, которое поступает из базы данных и отображается в разделе методов.
<template v-if = "header.value == 'ApplicationName'">
<a id = "url" href = "#" target = "_blank">{{renderData(props.item, header)}}</a>
</template>
methods: {
renderData: (item, header) => {
if (header.value == 'ApplicationName') {
document.getElementsByTagName("a")[0].setAttribute("href", item.AppUrl);
}
let val = "";
if (header.value.includes('.')) {
+
const vals = header.value.split('.')
val = vals.reduce((acc, val) => acc[val], item)
} else {
val = item[header.value]
}
if (typeof val === "boolean") {
val = val ? "Yes" : "No";
}
return val;
}
}
Ошибка при рендеринге: «TypeError: невозможно прочитать свойство setAttribute неопределенного»
Это исходит из этой строки - document.getElementsByTagName("a")[0].setAttribute("href", item.AppUrl);. Похоже, вы тоже пытаетесь установить его вручную.
Я действительно не знаю, что делать тогда.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете привязать результат метода к атрибуту. Ниже результат функции getUrl() привязывается к атрибуту href с помощью : (это сокращение от v-bind:href. При этом нет необходимости пытаться установить атрибут вручную внутри функции.
var app = new Vue({
el: '#app',
data: {
},
methods: {
getUrl: function(){
// return any value to demonstrate how this works
return "https://meta.stackoveflow.com";
}
}
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id = "app">
<a :href = "getUrl()">This links to META Stack Overflow</a>
</div>
Привяжите href к методу. то есть,
:href = "renderData(...)"