Saya menggunakan Vuejs . Ini markup saya:
<body>
<div id="main">
<div id="mainActivity" v-component="{{currentActivity}}" class="activity"></div>
</div>
</body>
Ini kode saya:
var main = new Vue({
el: '#main',
data: {
currentActivity: 'home'
}
})
;
Ketika saya memuat halaman saya mendapatkan peringatan ini:
[Vue warn]: Cannot find element: #main
Apa yang saya lakukan salah?
javascript
mvvm
vue.js
dopatraman
sumber
sumber
Jawaban:
Saya pikir masalahnya adalah skrip Anda dieksekusi sebelum elemen dom target dimuat di dalam dom ... salah satu alasannya adalah Anda telah menempatkan skrip Anda di bagian atas halaman atau dalam tag skrip yang ditempatkan sebelum elemen div
#main
. Jadi ketika skrip dieksekusi tidak akan dapat menemukan elemen target sehingga kesalahan.Salah satu solusinya adalah menempatkan skrip Anda di load event handler like
Sintaks lain
sumber
addEventListener
metode ini "secara teknis" merupakan pendekatan yang lebih dapat dipertahankan karena tidak mengesampingkanwindow.onload
properti global .<head></head>
bagian itulah yang menyebabkan saya kesalahan. Menunggu jendela untuk dimuat berfungsi.Saya telah memecahkan masalah dengan menambahkan atribut 'tunda' ke elemen 'skrip'.
sumber
defer
kerja atribut tag skrip di sini . Ini akan menunda menjalankan kode JS sampai setelah DOM telah diuraikan, tetapi sebelumonload
acara jendela dipecat.Saya mendapatkan kesalahan yang sama. solusinya adalah dengan meletakkan kode skrip Anda sebelum akhir tubuh, bukan di bagian kepala.
sumber
Yang sederhana adalah dengan meletakkan script di bawah dokumen, tepat sebelum
</body>
tag penutup Anda :file app.js:
sumber
Anda dapat menyelesaikannya dengan dua cara.
di mana Anda harus meletakkan kode javascript yang sama yang Anda tulis di file JavaScript lain atau file html.
sumber
Saya pikir terkadang kesalahan bodoh bisa memberi kita kesalahan ini.
Untuk
sumber