[ VueJs Datepicker ] datepicker ์ด๋ฒคํธ ๊ด๋ จ ๋ฌธ์
vuejs Datepicker ์ฌ์ฉ ์, IOS 15+ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ๋ฐ์ํ ๋ฌธ์ ์ ๋ํด ๊ณต์ ํ๊ณ ์ ํ๋ค.
์์ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ vuejs datepicker ๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ ํด๋น datepicker ์๋ ์ด๋ฒคํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ๋์ด ์๋ค.
<vuejs-datepicker v-model="params.startDate"
:format="$data._datepicker.format"
:language="_getDatepickerLanguage()"
:disabled-dates="disabledDatesFrom"
@input="params.startDate = _formatedDatepicker($event)"
@selected="updateDDT">
</vuejs-datepicker>
@input ์ datepicker์์ ๋ ์ง๋ฅผ ์ ํ ์, yyyy.mm.dd ํ์์ผ๋ก ๋ณํํ์ฌ model ์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ ์ด๋ฒคํธ์ด๋ค.
@selected ๋ datepicker์์ ๋ ์ง๋ฅผ ์ ํํ๋ฉด, ์๋์ ์ผ๋ก ๋ค์ datepicker์ disabled ์ต์ ์ ๊ฑธ์ด์ฃผ๋ ์ญํ ์ ํ๋ ์ด๋ฒคํธ ์ด๋ค.
์ฌ๊ธฐ์ ๋ฐ์ํ ์ฒซ๋ฒ์งธ ๋ฌธ์ ๋ ์๋์ ๋งํฌ ๋ด์ฉ ์ฒ๋ผ ios date ๊ฐ ๋ฌธ์ ๊ฐ ๋๋ฉด์ ๋ฐ์ํ๋ค.
https://lucete-stellae.tistory.com/72
[ IOS ] invalid Date ๊ด๋ จ ๋ฌธ์
์ต๊ทผ IOS ๋ชจ๋ฐ์ผ ์ฑ WebView ์ํฉ์์ invalid Date ๋ฌธ์ ๋ฅผ ๊ฒช๊ฒ ๋์๋ค. ์ฆ์์, ๋ ์ง ๊ฐ์ฒด๊ฐ ํํ์ด ๋์ง ์๋ ํ์์ด๋ฉฐ, format์ ๋ณํํ๊ฑฐ๋ date ๊ณ์ฐ์ ํ๋ ๊ณผ์ ์์ ํด๋น ํ์์ด ๋ฐ์๋์๋ค. ์ฐ์
lucete-stellae.tistory.com
vuejs datepicker github์ ๋ณด๋ฉด https://github.com/charliekassel/vuejs-datepicker#readme
GitHub - charliekassel/vuejs-datepicker: A simple Vue.js datepicker component. Supports disabling of dates, inline mode, transla
A simple Vue.js datepicker component. Supports disabling of dates, inline mode, translations - GitHub - charliekassel/vuejs-datepicker: A simple Vue.js datepicker component. Supports disabling of d...
github.com
์ฌ์ฉ๋ฐฉ๋ฒ์ ์๋์๊ฐ์ด ๋์์๋ค.
USAGE
<script>
var state = {
date: new Date(2016, 9, 16)
}
</script>
<datepicker :value="state.date"></datepicker>
์ฆ, ์ฌ์ฉ ์์ ๋ณ์ ์ด๊ธฐํ๋ date ๊ฐ์ฒด๋ก ํ๋ผ๋ ๋ป์ด๋ค. ๊ทธ๋ฌ๋, ์ ํ๋ฆฌ์ผ์ด์ ์์๋ datepicker์ ๋ฌธ์์ด๋ก ๋ ๋ชจ๋ธ์ ํตํด ๊ฐ์ ์ด๊ธฐํ ํ๊ฑฐ๋ ๋ฐ๊พธ๊ณ ์์๊ณ , ์ด ๋ถ๋ถ์์ ์ ๋ถ invalid date๊ฐ ๋จ์ด์ ธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์๋ค.
๋ฐ๋ผ์, datepicker ์ฌ์ฉ ์์ ๋ณ์๋ ํญ์ javascript date๋ฅผ ํตํด ์ด๊ธฐํํ๊ฑฐ๋ ์์ ํ์๋ค.
๋๋ฒ์งธ ๋ฌธ์ ๋ model ์์ ๋ฐ์ํ๋ค.
<vuejs-datepicker v-model="params.startDate"
:format="$data._datepicker.format"
:language="_getDatepickerLanguage()"
:disabled-dates="disabledDatesFrom"
@input="params.startDate = _formatedDatepicker($event)"
@selected="updateDDT">
</vuejs-datepicker>
๋ค์, vuejs datepicker ์ ์ธ๋ถ๋ฅผ ์ดํด๋ณด๋ฉด model ์ต์ ์ด ์ฌ์ฉ๋ ๊ฒ์ ์ ์ ์๋ค. v-model ์ต์ ์ vuejs ๋ฅผ ์ฌ์ฉํ๋ ๋ง์ ์ด์ ์ค ๊ฐ์ด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋๋ผ๋ ๋ ๋๋ง ๋๋ ํ์ด์ง์์ ๋ณ๊ฒฝ๋๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ต์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ datepicker ๋ ์ฌ์ฉ ์, input ์์๋ฅผ ํตํด ์ ํ๋ ๋ ์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋์ด์๊ธฐ ๋๋ฌธ์ model์ ์์์ ๋ฐ์ธ๋ฉ ํ๋ ๊ฒฝ์ฐ ํด๋น model ์ ๊ฐ์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.
์ด ๊ฒฝ์ฐ์, datepicker ์์ ๋ ์ง๋ฅผ ์ ํํ๋ฉด @input ์ด๋ฒคํธ๊ฐ ์คํ๋์ด v-model์ ๊ฐ์ ๋ณํ๋ฅผ ์ฃผ์ด์ผ ํ๋๋ฐ ์ฒซ๋ฒ์งธ๋ก ์ ํํ๋ฉด v-model์ ๋ณํ๊ฐ ์๊ณ , ํ๋ฒ ๋ ์ ํํด์ผ ์ค์ v-model์ ๊ฐ์ ๊ฐ์ ํ ๋นํ๋ค๋ ๊ฒ์ด๋ค.
ํ์ธํด๋ณธ ๊ฒฐ๊ณผ, input ์ด๋ฒคํธ์์ ์คํ๋๋ _formatedDatepicker๋ ๋ค์๊ณผ ๊ฐ์๋ค.
_formatedDatepicker: function (date, format) {
if (util.isEmpty(date)) return "";
var f = 'YYYY.MM.DD';
if (format) {
if (format == 'time') f = 'HH:MM';
else f = format;
}
return moment(date).format(f);
},
IOS date๋ฌธ์ ์ ์ฎ์ฌ์ ๊ทธ๋ฐ ์ค ์์์ผ๋ ์์ธ๋ก ์ด ๋ถ๋ถ์ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ฌธ์ ๋
v-model ๊ณผ @input ์์ ๊ฐ์ model ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฌด์จ์ด์ ์์ ์ง model ๋ณ์ ์ชฝ์ผ๋ก @input์์ ๋ฐ์ธ๋ฉํ ๊ฒฐ๊ณผ๊ฐ ์ ๋ฌ์ด ์๋๋ค๋ ๊ฒ์ด๋ค.
์๋ก ์ ๋ถ๋ถ์์ v-model์ ์ง์ฐ๊ณ ํ ์คํธ ํด๋ณธ ๊ฒฐ๊ณผ ์ ์์ ์ผ๋ก datepicker ์์ ์ ํํ ๋ ์ง ๊ฐ์ด ํ๋ฒ์ ๋ฐ์ธ๋ฉ ๋์๋ค. v-model๋ง ์ ์ธํ๋ฉด ๋๋ฒ ์ ํํด์ผ ๊ฐ์ด ์ ๋ฌ๋๋ ํ์์ด ๋ฐ์ํ ๊ฒ์ด๋ค.
vuejs datepicker ๋ฌธ์ ๋ด์ event ํญ๋ชฉ์ ๋ณด๋ฉด, input value๊ฐ ๋ณ๊ฒฝ๋๋ฉด input ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ์ํค๋๋ฐ
input | Date|null | Input value has been modified |
์ฌ๊ธฐ์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๊ฐ v-model ๊ฐ ๋ณ๊ฒฝ ์ด๋ฒคํธ๊น์ง ๋ฐ๋ก ์ ๋ฌ์ด ์๋๋ ๋ฏ ํ๋ค. ๋ญ๊ฐ ์ค๊ฐ์ ๋๊ธฐ๊ฑฐ๋ ํด์ ์ฒซ๋ฒ์งธ ์ ํํ ๊ฐ์ด ๋๋ฒ์งธ ์ ํํ ๋ v-model ์ชฝ์ผ๋ก ์ ๋ฌ์ด ๋๋ ๊ฒ์ผ๋ก ์์ํ๋ค.
<vuejs-datepicker v-model="datepicker.from" // ๋ค๋ฅธ ๋ณ์ ์ ์ธ
:format="$data._datepicker.format"
:language="_getDatepickerLanguage()"
:disabled-dates="disabledDatesFrom"
@input="params.startDate = _formatedDatepicker($event)" // v-model๊ณผ๋ ๋ค๋ฅธ ๋ณ์ ์ฌ์ฉ
@selected="updateDDT">
</vuejs-datepicker>
๋ ํ๋ณผ ์๋ ์์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ๊ณ ๋ฏผ์ ์ ๊ณ ๊ฒฐ๊ตญ ์ด๊ธฐํ ๊ฐ์ฒด๋ฅผ ํ๋ ๋ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๋ค. back ๋จ์์ ์ด๊ธฐ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์์ ๋ณ์์ ์ธํ ํ๊ณ , ๋ฐ์ดํฐ ์กฐํ ์ ์๋ model์ ์๋ ๊ฐ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ฒจ์ ์กฐํํ๋๋ก ํ๋ค.