๋ฌธ์ :
modal ํ์ ์ ajax๋ก ๋ฐ์ดํฐ๋ ๊ฐ์ ธ์ค์ง๋ง ๋ฐ์ธ๋ฉ์ด ๋์ง ์์
ํ๊ฒฝ: thyemelaf ํ์ผ์ vue.js๋ฅผ ์ ์ฉ(๋ณ๋ node.js ํ๊ฒฝ X)
thymeleafํ์ผ์ vue.js๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ์ modal์ฐฝ์ ์๋์ฒ๋ผ ๋ฐ์ธ๋ฉ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์๋ค.
์์ธ์ ๊ฐ๋จํ๋ค.
๊ธฐ์กด thyemelafํ์ผ์์๋ ์๋์ฒ๋ผ ์ ์ฒด๋ฅผ ๋ํ๋ด๋ div ์์ญ ๋ฐ์ ๋ชจ๋ฌ์ฐฝ div๊ฐ ์์์
๊ธฐ์กด์๋ javascript/jQuery๋ก ํ์ด์ง ๋ก๋ ํ DOM์ ์ง์ ์ ๊ทผํด์ ์์ ํด์ ๋ฌธ์ ๊ฐ ์๋์์
<!-- content -->
<div class="contents">
</div>
<!-- modal -->
<div class="popup" id="pop-info">
</div>
ํ์ง๋ง vue.js์์๋ root element์์ ๋ชจ๋ฌ์์ญ์ด ํฌํจ๋์ด ์์ด์ผ vue.js์ ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋์ด
vue.js์ ๋ฐ์ธ๋ฉ ๊ธฐ๋ฅ ์ฌ์ฉ ๊ฐ๋ฅ(vue.js์์๋ DOM์ ์ง์ ์ ๊ทผํ๋ ์ผ์ด ๊ฑฐ์ ์์)
<!-- content -->
<div class="contents" id="app">
<!-- modal -->
<div class="popup" id="pop-info">
</div>
</div>
<script>
new Vue({
el: '#app',
...
})
</script>
์ ์ฝ๋์ฒ๋ผ modal์์ญ์ root element์์ผ๋ก ํฌํจ ์ํค๊ณ ์ ์์ ์ผ๋ก ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์์
'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] ์ฝ๋ฐฑ ํจ์์์ this ์ฌ์ฉ ์ ์ ์์ (2) | 2023.08.10 |
---|---|
[Vue.js] ํ์ด์ง๋ค์ด์ ์ฒ๋ฆฌ (0) | 2023.08.09 |
[Vue.js] vue.js์ ๋ ๋๋ง ๋ฐฉ์๊ณผ ๊ธฐ์กด ๋ฐฉ์์ ์ฐจ์ด์ (feat. ajax) (8) | 2023.07.30 |
[Vue.js] watch vs computed(๋ฐ์ดํฐ ๋ณํ ๊ฐ์ง) (0) | 2023.07.30 |
[Vue.js] ์ฑ๊ธ ํ์ผ ์ปดํฌ๋ํธ์์ axios ํต์ (0) | 2023.07.29 |
๋๊ธ