Здравствуйте. Почему я не могу в каком-либо объекте в data сослаться на другой объект в том же data ?
let item4 = 'Какой-то текст';
let item5 = [1, 2, 3, 4, 5];
let item6 = {
name: 'Trololo',
age: '111'
};
new Vue ({
el: '#app',
data: {
item1: 100,
item2: [1, 2, 3, 4, 5],
item3: 'Some text',
items: [
{ name: 'Item 0', amount: 666 },
{ name: 'Item 1', amount: this.item1 }, // Пусто
{ name: 'Item 2', amount: this.item2.length }, // TypeError: this.item2 is undefined
{ name: 'Item 3', amount: this.item3 }, // Пусто
{ name: 'Item 4', amount: item4 },
{ name: 'Item 5', amount: item5.length },
{ name: 'Item 5', amount: item6 },
{ name: 'Item 5', amount: 'Name: ' + item6.name + ' | ' + 'Age: ' + item6.age },
],
},
methods: {
consoleLog1() {
console.log( this.item2.length );
},
consoleLog2() {
console.log( this.item2 );
},
}
});
в
{ name: 'Item 1', amount: this.item1.length }
и
{ name: 'Item 2', amount: this.item2 }
не могу обратиться к объектам item1 и item2 соответственно.
Но в методах могу обратиться тем же способом. И могу обращаться к переменным вне объекта data
и могу получить объект, массив или длину массива
Вот HTML разметка, на всякий случай, как я вызываю методы
<table>
<tr v-for="item in items">
<td>{{ item.name }}</td>
<td>{{ item.amount }}</td>
<td v-on:click="consoleLog1">sonsole log 1</td>
<td v-on:click="consoleLog2">sonsole log 2</td>
</tr>
</table>