хорошо. полное переоснащение, так как люди увязли в вещах, не связанных с этим вопросом. так что я свел его к самому маленькому существу:
<script src='_js/vue.2.6.11.js'></script>
<div id="app">
<h1>{{ email }}</h1>
<h1>{{ email[reportID] }}</h1>
<hr>
<button @click='makeItGo'>CLICK</button>
</div>
<script>
var vm = new Vue ({
el: '#app',
data: {
email: [],
reportID: 40,
info: 'this is info',
},
methods: {
makeItGo() {
vm.email.push(vm.reportID);
vm.email[reportID] = info; <-- this doesn't work. WHY?
vm.email[reportID].push(info); <-- this doesn't work either. WHY?
}
},
});
</script>
, это вызовет следующие ошибки:
[Vue warn]: Error in v-on handler: "ReferenceError: reportID is not defined"
(found in <Root>)
ReferenceError: "reportID is not defined"
makeItGo http://localhost/project/test.php line 669 > scriptElement:27
invokeWithErrorHandling http://localhost/project/_js/vue.2.6.11.js line 669 > scriptElement:1863
invoker http://localhost/project/_js/vue.2.6.11.js line 669 > scriptElement:2188
_wrapper http://localhost/project/_js/vue.2.6.11.js line 669 > scriptElement:7547
вот разочарование: ПОЧЕМУ говорится, что 'reportID' неопределенный, когда это так очевидно. и ПОЧЕМУ вызов этого напрямую (vm.email против электронной почты) не обходит никакие проблемы с областями видимости, как я и ожидал (что является проблемой)? в PHP этого просто не происходит, поэтому я запутался.
Все, что я пытаюсь сделать, это динамически создать вложенный массив. оттуда короткий прыжок, чтобы сделать его ассоциативным ... я надеюсь.
email
└ 40
└ 'this is info'