.lazy
ã .number
ã .trim
ãããã .undef
ãé²è¡äžã§ãã
.lazy
ãé€ãã°ããããã¯ãã¹ãŠåæ¹åãã£ã«ã¿ãŒã®ããã«æ©èœããŸãã
2.0ã¯2ãŠã§ã€ãã£ã«ã¿ãŒããµããŒãããŠããªããããåãããŒãºãæºããããã«ã«ã¹ã¿ã vã¢ãã«ä¿®é£Ÿåãè¿œå ããããã®æ°ããAPIãå¿ èŠã«ãªãå ŽåããããŸãã
@posvaã§èšç®ãããããããã£ã¯åå©çšã§ããŸããã
ã»ãšãã©ãã¹ãŠãããã¯ã¹ã€ã³ãä»ããŠåå©çšå¯èœã§ãã
ããã¯ã¹ã€ã³ãçæããé¢æ°ã䜿çšã§ããŸãã ãã®ããã«ããŠã
åçã«èšç®ãããããããã£ã ç§ã¯ä»ãã®äŸããã£ãã«ã«çœ®ãããšã¯ã§ããŸãã
ããããç§ã¯ãããã§ããã ãæ©ãããŸãã
ãã ããå
¥åãæã€éåžžã«äžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ããããšã«åæããŸã
é©çšãããå€æã é©åãªAPIãŸãã¯å°ãªããšã
ã¬ã€ããå¿
èŠã§ã
2016幎9æ13æ¥ç«ææ¥ã18ïŒ48FranciscoLourençoã notifications @ github.com
æžããŸããïŒ
@posvahttps ://github.com/posvaèšç®ãããããããã£ã¯åå©çšã§ããŸããã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/vuejs/vue/issues/3666#issuecomment -246746524ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAoicf33lCvETQc9LBQ5GGZ93ExPcLS_ks5qptPegaJpZM4J7vQ0
ã
ã»ãšãã©ãã¹ãŠãããã¯ã¹ã€ã³ãä»ããŠåå©çšå¯èœã§ãã
ããã¯ã¹ã€ã³ãçæããé¢æ°ã䜿çšã§ããŸãã ãã®ããã«ããŠã
åçã«èšç®ãããããããã£ã ç§ã¯ä»ãã®äŸããã£ãã«ã«çœ®ãããšã¯ã§ããŸãã
ããããç§ã¯ãããã§ããã ãæ©ãããŸãã
ãã ããå ¥åãæã€éåžžã«äžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ããããšã«åæããŸã
é©çšãããå€æã é©åãªAPIãŸãã¯å°ãªããšã
ã¬ã€ããå¿ èŠã§ã
èšãæãããšãèšç®ãããããããã£ã¯åå©çšã§ããŸããã åé¿çãšããŠãã¡ã¯ããªé¢æ°ãšããã¯ã¹ã€ã³ã䜿çšã§ããŸããã䜿ãããããšèªã¿ãããã¯æ¯èŒã§ããŸããã
ç§ã®ãããžã§ã¯ãã§ã¯ããã®æ©èœãéåžžã«å¿ èŠã ã£ããããæšå¥šãããã«ã¹ã¿ã å ¥åã¢ãããŒãã䜿çšããŸããã
InputCustom.js
define(function () {
return Vue.extend({
data: function () {
return {
focused: false
};
},
template: '<input @focus="onFocus" @blur="onBlur" @input="onInput" @change="setDisplayValue">',
props: ['value'],
watch: {
value: function () {
if (!this.focused) {
this.setDisplayValue();
}
}
},
mounted: function () {
this.setDisplayValue();
},
methods: {
onInput: function () {
this.$emit('input', this.parse(this.$el.value));
},
onFocus: function () {
this.focused = true;
},
onBlur: function () {
this.focused = false;
this.setDisplayValue();
},
setDisplayValue: function () {
this.$el.value = this.format(this.value);
}
}
});
});
InputText.js
define(['js/InputCustom'], function (InputCustom) {
return InputCustom.extend({
methods: {
parse: function (val) {
val = val.trim();
return val === '' ? null : val;
},
format: function (val) {
return val === null ? '' : val;
}
}
});
});
ç§ã®æèŠã§ã¯ããã®ã¢ãããŒãã¯éåžžã«äŸ¿å©ã§ããã .lazy
ãå«ãvã¢ãã«ä¿®é£ŸåããŸã£ãã䜿çšããªãããšã«ããŸããã
çµã¿èŸŒã¿ã®ä¿®é£ŸåããµããŒãã§ããªããããã«ã¹ã¿ãã€ãºããããŠãŒã¹ã±ãŒã¹ã®å Žåã @ecmelãèšåããã®ãæšå¥šãããã¢ãããŒãã§ãã ããã«ã€ããŠã¯ãå ¬åŒã¬ã€ãã§è©³ãã説æããŸãã
ãã®æ©èœææ¡ã®ã¢ã€ãã¢ã¯ãæ¢åã®v-model
ãã£ã¬ã¯ãã£ããå©çšããããšã§ããããã¯ããã¹ãŠã®input
èŠçŽ ã§ãã§ã«æ©èœããŠããŸãã ãã¹ãŠã®ãããžã§ã¯ãã§_InputCustom.js_ãäœæããäœæ¥ãç¯çŽããã«ã¯ãããã¯ãã§ã«v-model
ã§è¡ãããŠãããããã«ã¹ã¿ã 修食åã«_InputText.js_ã«çžåœãããã®ãäœæããã ãã§æžã¿ãŸããããã«ã¯ãå¿
èŠãªãã¹ãŠã®ããžãã¯ãå«ãŸããŠããŸããã»ãšãã©ã®å Žåå€æŽãããŸãã v-model
ã«ã¯ãã§ã«ä¿®é£Ÿåãä»å±ããŠãããšããäºå®ã¯ããããçŽæçã§æãŸãããã¿ãŒã³ã§ããããšã蚌æããŠããŸãã ã«ã¹ã¿ã 修食åã®äœæã容æã«ããã«ã¹ã¿ã èŠçŽ ãäœæããäœæ¥ãç¯çŽããdom/modelãã€ã³ãã£ã³ã°ãæåã§å®è£
ããå¿
èŠãããã®ã¯åœç¶ã®ããšã§ãã
APIã®èŠ³ç¹ããçã«ããªã£ãŠããå Žåã¯ããã®æ©èœãå®è£ ããªããšãã決å®ãæšé²ããŠããæè¡çãªå¶éãäœã§ããããç¥ãããšã¯èå³æ·±ãã§ãããã
ãã®åé¡ãåéã§ããå¯èœæ§ã¯ãããŸããïŒ ç§ã®äžè¬çãªäœ¿çšäŸã¯ãå ¥åæã«ãã£ãŒã«ãã®ããŒã¿ãèªåçã«ãã©ãŒãããããå¿ èŠãããããšã§ããã101216ããååŸããŠã10/12/16ãã«å€æãããããªãã®ã§ãã ã«ã¹ã¿ã v-model修食åãäœæã§ãããšãå°éå ·ãã€ãã³ãã䜿çšããŠã«ã¹ã¿ã å ¥åã³ã³ããŒãã³ããäœæãã代ããã«v-model.dateãèšè¿°ã§ãããããã³ãŒããå€§å¹ ã«ç°¡çŽ åãããŸãã
ç§ã®ãããžã§ã¯ãã§ãã°ããvuejsã䜿çšããåŸããã®åé¡ã¯å®éã«åéããå¿ èŠããããšæããŸãã
å°ãªããšãã undef
修食åãå¿
èŠã§ãã
ãã®åé¡ãåéããå¿
èŠãããããšã«åæããŸãã undef
ãäœãããã®ãããããŸããããå
¥åã®ããªãã³ã°ãããå€ã空ã®æååã®å Žåã«å€æ°ãnull
ã«èšå®ããv-model
修食åãå¿
èŠã§ãã
èªåã§ç°¡åã«ã§ããããã«ãªãããã§ãã
ãããããåé·ãªæ©èœããããšãã°https://github.com/vuejs/vue/issues/5194ã§è¿œå ãããŸããã å€éšããèŠããšãVueã¯ãåå¿ã³ãã¥ããã£ã«ãã£ãŠæšé²ãããŠããæ £ç¿ãæ £è¡ãæ¯æããŠããã®ååã®ããã€ãããã£ãããšåŠ¥åããŠããããã«èŠããŸãã ããããç®ç«ã€å質ããå°ãå€ããŠããŸãã ããããåå¿ããã®ç§»è¡ã容æã«ããããšãç®çãšããæèçãªæ±ºå®ãªã®ãããããšãåãªãå¶ç¶ãªã®ããç¥ãããšã¯èå³æ·±ãã§ãããã
ã«ã¹ã¿ã ã³ã³ããŒãã³ãã®äœæã¯åé¡ãããŸãããã httpsïŒ//github.com/text-mask/text-mask/tree/master/vue#readmeãªã©ã®ãµãŒãããŒãã£ã®ã«ã¹ã¿ã ã³ã³ããŒãã³ãã䜿çšããå Žåããã¹ã¯ããããã®ããµãã¿ã€ãºããç°¡åãªæ¹æ³ã¯ãããŸãããèšç®ãããããããã£ã䜿çšããå Žåãé€ããŠãã¢ãã«å€ãžã®å ¥åã
ããã§ãHTMLæšæºã®input [type = date]ãã£ãŒã«ãã䜿çšããŠã¢ãã«ã®æ¥ä»åãç·šéãããã®ã§ããããã®çŽ æŽããã匷åã§æ¡åŒµå¯èœãªãã¬ãŒã ã¯ãŒã¯ã§ã¯ãããã«ãããè¡ãããšã¯ã§ããŸãããïŒ ãã£ãŒã«ãã«æ¥ä»ãèªã¿èŸŒããŸãããæ¥ä»ãéžæããåŸãããŒã¿å ã®æååã§æ¥ä»ãäžæžãããŠãã ããã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãåæ¹åãã£ã«ã¿ãŒãŸãã¯ä¿®é£Ÿåã䜿çšããŠ2è¡ã§èšè¿°ã§ããŸãã
ããããæåã®è§£æ±ºçã¯ããã§ãã¯ããã¯ã¹ããã®ä»ã®æšæºå ¥åãã£ãŒã«ãã®å Žåãšåãããã«ããã€ãã£ãã§ãµããŒãããããšã§ãããªããæ¥ä»ããç¹å¥ãªã®ã§ããïŒ
ã«ã¹ã¿ã 修食åã®å Žåã¯+1ã ããããªãæ£åœãªçç±ããªãéããç°¡åãªããšã®ããã«æããŸããïŒ
å ¥åããã¹ãã³ã°ããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããã«å€ã解æããããšã¯éåžžã«äžè¬çãªæ¹æ³ã§ãããv-model.lazy.currency="amount"ã®ãããªãã·ã³ã¿ãã£ãã¯ã·ã¥ã¬ãŒããäœæããããšã¯çŽ æŽãããããšã§ãã
ã«ã¹ã¿ã 修食åã®å Žåã¯1+ã
æååã«è©äŸ¡ãããtrue|falseå€ãæã€åçŽãªã©ãžãªå
¥åããããŸã-ããããããŒã«å€ãšããŠããããå¿
èŠã§ã-ãã®å Žåããã¹ãŠã®ã©ãžãªå
¥åã«å¯ŸããŠèšç®ãããããããã£ãåå®è£
ããå¿
èŠããããããèšç®ãããããããã£ã¯ã¹ããŒãã§ã¯ãããŸããã ããšãã°ã100åã®ç¡ç·å
¥åããããšã100åã®èšç®ãããããããã£ã«ãªããŸã
ã«ã¹ã¿ã 修食åã®å Žåã¯+1ã§ãããtobeiã«åæããŸã--input [type=date]ã¯èªåçã«æ©èœããã¯ãã§ãã
ã«ã¹ã¿ã 修食åã®å Žåã¯+1ã
ç§ã¯Angularã®ããã¯ã°ã©ãŠã³ãããæ¥ãŠãvueããå§ããŠããã®ã¹ã¬ãããèŠãŸããã
Vueã§ãAngularã®ããŒãµãŒããã©ãŒããã¿ãŒã®ãããªãã®ãæã£ãŠãããšæ¬åœã«åœ¹ç«ã€ãšæããŸãã v-model.dateFormatã®ãããªããšãããŠãmm / dd / yyyyã®ãããªçµæãåŸãããã°ãããã¯æ¬åœã«çŽ æŽãããããšã§ãã
ç·šéïŒ @restored18ãèšã£ãããšãç¹°ãè¿ããããã§ãã ããªãã«ã+1
ã«ã¹ã¿ã vã¢ãã«ä¿®é£Ÿåã®å Žåã¯+1ã
ç§ã®å ŽåãJSONã§ååŸãããããã€ãã®ãã¹ãããããªããžã§ã¯ããã«ãŒãããïŒãªããžã§ã¯ãããšã®ãã³ãã¬ãŒãã§ã¯ãªãïŒåäžã®HTMLãã³ãã¬ãŒãã䜿çšããŸãã ãã®å Žåãèšç®ãããããããã£ã¯æ©èœããªããšæããŸããïŒ
ç§ã¯çŸåšãããŒã¿ããã§ããããã³éä¿¡ãããšãã«ãµãŒããŒåœ¢åŒãšvã¢ãã«åœ¢åŒã®éã«ã«ã¹ã¿ã å€æã¡ãœãããå ¥ããŠããŸãããé¢æ°ãæž¡ãããšãã§ãããçµã¿èŸŒã¿ãã®ãã®ã欲ããã§ãã
ããã«+1ã 2.2ããåã«å©çšå¯èœã§ããã ããªãã¯ããä»ããŠããããã£ã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
this.$vnode.data.directives
ã«ã¹ã¿ã ã¢ãã«ã®å ¥åå€ãè¿œå ãããŠåé€ãããŸããããéåžžã«äŸ¿å©ãªæ©èœã§ããããã¬ãŒã ã¯ãŒã¯ã«æ»ãå¿ èŠããããŸãã
ãã®ããã«+1ã
ã«ã¹ã¿ã vã¢ãã«ä¿®é£Ÿåã¯çŽ æŽãããã§ãããïŒ
2018幎ã+1...
+1ç§ã®æèŠã§ã¯DRYã³ãŒãã«å¿ èŠãªæ©èœã§ãã ä»ã®ãšãããå ¥åã®å€ããã©ãŒã ã«å¯ŸããŠåãããšãè¡ããŠã©ããã£ãŒã10åäœæããå¿ èŠããããŸãã ã«ã¹ã¿ã 修食åã¯ãã¹ãŠã解決ããŸãã
+1ç§ã¯vueãå§ããã°ããã§ããã§ã«ãããã®ã¿ã€ãã®åæ¹åãã£ã«ã¿ãŒãå¿ èŠã§ã...
+1ã¯ééããªãå¿ èŠã§ã
+1
ã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹IMOã«å¯ŸããŠããã®ãããªãã«ããŒãæ§ç¯ã§ããŸã
@nickmessingã¯ãããã§èª¬æãããŠããïŒæ¬åœã«äŸ¿å©ãªïŒãŠãŒã¹ã±ãŒã¹ãã«ããŒããŠããŸãããããã¯ãå
¥åããã¹ãã®ã€ã³ãã¬ãŒã¹å€æŽã§ãã åžžã«é»è©±ã®ããã«ãã©ãŒããããããå
¥åããã¯ã¹ãããå Žåã¯ã <input v-model.phone="some_data">
ã«ãªããŸãã ãŠãŒã¶ãŒãããã¹ããå
¥åãããšãèªåçã«ãã©ãŒããããããŸãã
ããã¯ãã®ãããªåºæ¬çãªæ©èœã®ããã§ãããçŸåšããã¹ããããé£ããã§ãã ãã®åäœã¯ãã¬ãŒã ã¯ãŒã¯ã«ãã§ã«ååšããŸãããäœããã®çç±ã§ãã¬ãŒã ã¯ãŒã¯ã®ã¿ã®ã³ãŒãã«å¶éãããŠããŸãã ãããè¡ãã«ã¹ã¿ã 修食åãè¿œå ã§ããããã«ããããšèããŠããŸããããã¯ãçŸåšã®ãã£ã«ã¿ãŒããã£ã¬ã¯ãã£ããšåãããã«ãã³ã³ããŒãã³ãããããžã§ã¯ãéã§åå©çšã§ããŸãã
@bbughã¯å®å
šã«åæããŸããç§ã¯IBANããã©ãŒãããããããšã§åæ§ã®ã±ãŒã¹ãæã£ãŠããŸãããããŠããã¯åã«ããã«v-model.iban="payment.iban"
ãå
¥ããããã®ãšãŠãçŽ æŽããããŠéå±ãªæ¹æ³ã§ããã...
@franciscolourencoãããã誰ãããããããã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠãµããŒããããã¹ãã§ã¯ãªãçç±ãèåŸã«çœ®ããŠããããããæçœã«ãªãããã«ããããšãã§ããŸãã
ã«ã¹ã¿ã 修食åã®+1ããã®æ©èœã§éæã§ãããŠãŒã¹ã±ãŒã¹ã¯ãããããããŸã
ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãé貚ããã©ãŒãããããããã®ããã€ãã®ç°ãªãå
¥åããããåžžã«ã»ã³ãã®éé¡ãã¢ãã«ã«æ ŒçŽããŸãããå
¥åã«ã¯é©åã«ãã©ãŒãããããããã«ã®éé¡ã衚瀺ããŸãïŒãããã£ãŠãã¢ãã«ã®123456ã¯$ 1,234.56ãšããŠè¡šç€ºãããŸãïŒ <input v-model.dollars="cents" />
ä»ã®ãŠãŒã¹ã±ãŒã¹ã¯ãXSSæ»æãé²ãããã«htmlãã£ãŒã«ãããµãã¿ã€ãºããŠãšã¹ã±ãŒã解é€ããããšã§ãïŒã¢ãã«ã¯ã A & B
ããæ ŒçŽããå
¥åã¯ã A & B
ãã瀺ããŸãïŒ <input v-model.html="text" />
+1
+1
ã«ã¹ã¿ã 修食åã®å Žåã¯+1ã
v-model.trim.uppercase=...
ã®ãããªããšãã§ããªãããšã«æ¬åœã«é©ããŸãã
+1
+1
+1
+1
ãã€ãã£ãã®v-model
å
¥å修食åã¯çŽ æŽãããæ©èœã§ãã ããã§äººã
ãèšåããŠããããã«ãå€ãã®ãŠãŒã¹ã±ãŒã¹ããããŸãã ç§ãåãçµãã§ãããã¹ãŠã®ãããžã§ã¯ãã«ã¯ãæ¥ä»ãšé貚ã®ä¿®é£Ÿåãå¿
èŠã§ããã
ããã§åé¡ãéãå¿ èŠããããŸããïŒ https://github.com/vuejs/rfcs
ç§ã¯ãã§ã«ããã+1ããŠããŸããããä»ãäœããå¿ èŠãªäººã®ããã«ã¡ã¢ãæãããã§ã
ã¢ãã£ãã¡ã€ã¢ã®æ¹ãã¯ããã«å¹ççã§ãããèšç®ãããã²ãã¿ãŒ/ã»ãã¿ãŒãã£ãŒã«ããæã€ééçãªå ¥å/ã³ã³ããŒãã³ãã䜿çšããŠåãå¹æãéæããããšãã§ããŸããã
誰ãããããå¿ èŠãšãããªãã°ãç§ã¯äŸãå ±æããããšãã§ããŸã
ãã®äžèŠç°¡åãªæ©èœã§èæ ®ãã¹ãããšãããããããããããããå®è£ ããŸããã§ããã
çµã¿èŸŒã¿ã®ä¿®é£Ÿåã¯ãå®éã«ã¯ãããŸããŸãªã³ã³ãã€ã«æžã¿ã³ãŒããçæããã³ã³ãã€ã«æã®ãã³ãã§ãã ã«ã¹ã¿ã 修食åã¯ãå¥ã®ã¡ã«ããºã ã§ããã©ã³ã¿ã€ã æ§æã䜿çšããŠå®çŸ©ããå¿ èŠãããå¯èœæ§ããããŸãã
ã©ã³ã¿ã€ã æ§æã®å Žåãããã«å¯ŸããŠã©ã®ãããªçš®é¡ã®APIãå ¬éããå¿ èŠããããŸããïŒ
éå»ã«ã¯åæ¹åãã£ã«ã¿ãŒããããŸããã åæ¹åå€å€æã§ã¯ãåæ¹åãã€ã³ãã£ã³ã°ãå®å®ãããããã«ããŠãŒã¶ãŒãéã®æã¡ã©ããã®ãªãããžãã¯ãå®è£ ããå¿ èŠããããŸãã ããããªããšããšããžã±ãŒã¹ã§ã¢ããªå šäœãç¡éã«ãŒãã«é¥ããªã¹ã¯ããããŸãã
.number
ãš.trim
ãããçç±ã¯ãããããå®éã«ã¯äžæ¹åã®å€æã§ããïŒDOMå€ãã³ã³ããŒãã³ãããŒã¿ã«åæããå Žåã«ã®ã¿é©çšãããïŒãå®å®ããããšãä¿èšŒãããŠããããã§ããã³ã³ããŒãã³ãã§v-model
ã䜿çšãããŠããå Žåãã«ã¹ã¿ã 修食åã¯ã©ã®ããã«åäœããå¿
èŠããããŸããïŒ
ã«ã¹ã¿ã 修食åã¯ãããã¹ã以å€ã®å
¥åã¿ã€ãïŒ radio
ã checkbox
ãæãéèŠãªã®ã¯<select>
ãªã©ïŒã§ã©ã®ããã«åäœããå¿
èŠããããŸããïŒ
ãããã®è³ªåã¯ãã¹ãŠåçãããŠããããèŠæ±ãèŠãç®ãããè€éã«ãªã£ãŠããŸãã ãããã誰ããæ¬åœã«ãã®æ©èœãå¿ èŠãšããŠããå Žåãããããã¹ãŠãã«ããŒããé©åãªRFCã®è¯ãåè£ã«ãªãããšã«åæããçç±ã§ãã ãããŸã§ã¯ã+1ãå¢ãããŠãåé²ããŸããã
@rkingon https://github.com/vuejs/vue/issues/3666#issuecomment -249583603ã«ã¯ãã§ã«äŸããããŸãããç°ãªã/åªããŠããå Žåã¯ãæçš¿ããŠãã ããã åå¿è ã«ã䟿å©ã§ãã
@Gotterbildç§ã¯ãã®ãµã³ãã«ãèŠéããŸããããVueã®æ°ããããŒãžã§ã³ã§ã¯ããªãè€éã«ãªã£ãŠããŸãïŒããã¯äºåã«ééçãªã³ã³ããŒãã³ãã®ãµããŒãã§ãã£ãå¯èœæ§ããããŸãïŒ
ããã¯ç§ãæã£ãŠããéåžžã«åçŽãªãã®ã§ãããŒã»ã³ãã10é²æ°ã«å€æãïŒã€ãŸãã4.5-> .045ïŒããã®éãåæ§ã§ãïŒããã¥ãŒãå€ãšãã¢ãã«ãå€ïŒ
<template>
<input type="number" v-on="listeners" v-model="innerValue">
</template>
<script>
export default {
props: ['value'],
computed: {
listeners () {
const { input, ...listeners } = this.$listeners
return listeners
},
innerValue: {
get () {
return (this.value) ? `${(this.value * 100)}` : ''
},
set (_val) {
const val = (_val) ? (_val / 100) : ''
this.$emit('input', val)
}
}
}
}
</script>
ãã¹ãŠã®ãã©ãŒã«ã¹/ãã©ãŒãªã©ãåæå®ããå¿ èŠããªããããããã¯äžèšãããç°¡åã§ãã
@yyx990803ãã®ãããã¯ã«é¢ããããå€ãã®èæ¯æ å ±ãæäŸããŠããã ãããããšãããããŸãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãã«ã¹ã¿ã 修食åã¯ãå¿ èŠãããŸãããã æ¶è²»è ã®èŠ³ç¹ããã¯ãvueã«ç¬èªã®æ¹æ³ãæ§ç¯ããæ¹æ³ãããããšã¯çã«ããªã£ãŠããŸãã åºæ¬çã«ã修食åãé€ããŠãã¹ãŠã«ããããããŸãð
å€æããžãã¯ãé©åã«ã«ãã»ã«åããåå©çšã§ãããã®ãäœæããæ¹æ³ãèŠã€ããããšã¯ã§ããŸãããããã®ãããªãŠãŒã¹ã±ãŒã¹ã«é©åãªAPIã䜿çšããããšã§ãããã¹ã-ç·Žç¿ä¿®é£Ÿåãã
æååã倧æåã«å€æãã修食åãäœæããããšããŠããã®ã§ãããã«æ¥ãŸãã
v-model.uppercase="username"
ã®ããã«äœãããã£ã
ã«ã¹ã¿ã ãã£ã¬ã¯ãã£ãã䜿çšããããšã«ãªããŸãã
Vue.directive('uppercase', {
update (el) {
el.value = el.value.toUpperCase()
},
})
<input type="text" v-model="username" v-uppercase>
代æ¿æ段ãšããŠã¯ãã«ã¹ã¿ã ãã£ã¬ã¯ãã£ãã§ååã§ãã
ãŸãã¯ãã«ã¹ã¿ã vã¢ãã«ä¿®é£Ÿåã§ã®ã¿å¯èœãªããšã¯ãããŸããïŒ
@Christhofernataliusã¯ã v-model
ãåãªããã£ã¬ã¯ãã£ãã§ãããšèããŠããŸãããã«ã¹ã¿ã ãã£ã¬ã¯ãã£ããåªå
ããŠã v-model
ãåé€ã§ããŸããã§ãããïŒ ãã®ããã«ããªãã¯äºåºŠæŽæ°ããŠããŸãããïŒ
@Christhofernataliusã¯ã
v-model
ãåãªããã£ã¬ã¯ãã£ãã§ãããšèããŠããŸãããã«ã¹ã¿ã ãã£ã¬ã¯ãã£ããåªå ããŠãv-model
ãåé€ã§ããŸããã§ãããïŒ ãã®ããã«ããªãã¯äºåºŠæŽæ°ããŠããŸãããïŒ
@rkingon 2åæŽæ°ãããŠããŸããïŒ
ãããã£ãŠãv-modelã䜿çšããªãå Žåã¯ãå
¥åãªã¹ããŒã®ãã€ã³ãããã¯ãšãã€ã³ã解é€ããã¯ãè¿œå ãããŠãŒã¶ãŒåã®å€ãæŽæ°ããå¿
èŠããããŸããïŒ
ç·šéïŒsetterãšgetterã§èšç®ããããã®ã2åæŽæ°ãããŠããŸãããïŒ
ç·šé2ïŒãŠã©ããã£ãŒãšãã£ã¬ã¯ãã£ãã®ã³ã³ãœãŒã«ãã°ãè©ŠããŸããããããããããŒã¹ãããŒã¯ããšã«1åã ãåºåãããŸãã
ç§ã¯ãããè©ŠããŠããŸããããã æšæž¬ã§ã-1ã€ã®å€ãæŽæ°ãã2ã€ã®ãã£ã¬ã¯ãã£ãã®ã¢ã€ãã¢ã¯ç§ã«ã¯å°ãé¢çœããšæããããããŸããããããªããããããã§ãã¯ããå Žåãç§ã¯ããã§äœãæªãããšã¯ããããŸããã
ç§ã®ã³ã³ããŒãã³ãã®åé¿çã«ãå¶éããããŸãããã®ãããã¢ãã£ãã¡ã€ã¢ãåŒãç¶ã䜿çšããŠããŸããã€ãŸããèŠçŽ ãå¿ èŠã§ãã¬ã³ããªã³ã°æéãé·ããªãããã®ã³ã³ããŒãã³ãã®å®çŸ©æ¹æ³ïŒã€ãŸããå ¥åãã£ãŒã«ãïŒã§ã®ã¿ã³ã³ããŒãã³ããšããŠæ©èœããŸãã ïŒvsãã£ã¬ã¯ãã£ãã®åã§ããä»»æã®ã³ã³ããŒãã³ã/èŠçŽ ã§ãããåçŽã«äœ¿çšããããšããã§ããŸãã
ç«ã®ç®ãå¥ã2ã€ã®æ¹æ³ããªãã·ã§ã³ããããšããã§ãã:)
ãã®ããã®RFCã¯ãããŸããïŒ
ç§ã¯ããã¯æããªã
ç§ã¯ãããäœæããããšãã§ããŸããããããã¯åã«ãã®RFCãªããžããªãŸãã¯äœãä»ã®ãã®ã«åé¡ãè¿œå ããããšãæå³ããŸããïŒ
https://github.com/vuejs/rfcs#what -the-process-ããã¯ããªãã®è³ªåã«çããŸããïŒ
ãããåéã§ããŸããïŒ ã«ã¹ã¿ã ãã£ã¬ã¯ãã£ããæ©èœããå ŽåããããŸãããåäœãããããå ŽåããããŸããäŸïŒ
Vue.directive('number', {
update: function(el, binding, vnode) {
el.value = el.value.replace(/[^\d.]/g, '');
},
});
ãã®ãã£ã¬ã¯ãã£ããïŒvã¢ãã«ãšãšãã«ïŒè¿œå ãã1ã€ããã®ããŒã¹ãããŒã¯ã§æåãéåžžã«éãå
¥åãããšã v-model
ã¯el.value
ãšåæããªããªããŸãã ãŸããåãåã£ããã€ã³ãã£ã³ã°ãªããžã§ã¯ããå€æŽã§ããªãããããã®ãã£ã¬ã¯ãã£ãå
ã§v-modelããåå®è£
ãããæ¹æ³ã¯ãããŸããã
@jeankvdããéãã®ããã«æããããšã¯ããã£ãŠããŸãããã©ãããŒã³ã³ããŒãã³ããæãä¿¡é Œæ§ãé«ããªããŸãïŒäžèšã®äŸãåç §ïŒã
ã©ãããŒã³ã³ããŒãã³ãã䜿çšãããšããããã«å€ãã®ããšãå®è¡ãããããšãã§ããŸãã ãæ°å€ãã®äŸã§ã¯ãçæ³çã«ã¯ãvã¢ãã«ã¯å®éã«ã¯Number
ã«ãªããŸãã ããªãã®ã¢ãããŒãã§ã¯ãããã¯ãŸã String
ã§ãã
空ã®å€ãã«ã¹ã¿ãã€ãºãããå Žåã¯ã©ããªããŸããïŒ ç©ºã®æååïŒ ãã«ïŒ æªå®çŸ©ïŒ -- emptyValue
ã®å°éå
·ãæž¡ããŠããã®ããã«èšå®ã§ããŸãã
ãã€ãŠã¯ãããæ¯æããŠããŸããããã¢ãã£ãã¡ã€ã¢ã«ã¯å¶éãå€ãããŠãã³ã³ããŒãã³ããæã£ãŠããã ãã§ã¯ããã«åªããŠããããšã«æ°ã¥ããŸããïŒå°ãªããšãimoïŒã
æãåèã«ãªãã³ã¡ã³ã
ãã®åé¡ãåéã§ããå¯èœæ§ã¯ãããŸããïŒ ç§ã®äžè¬çãªäœ¿çšäŸã¯ãå ¥åæã«ãã£ãŒã«ãã®ããŒã¿ãèªåçã«ãã©ãŒãããããå¿ èŠãããããšã§ããã101216ããååŸããŠã10/12/16ãã«å€æãããããªãã®ã§ãã ã«ã¹ã¿ã v-model修食åãäœæã§ãããšãå°éå ·ãã€ãã³ãã䜿çšããŠã«ã¹ã¿ã å ¥åã³ã³ããŒãã³ããäœæãã代ããã«v-model.dateãèšè¿°ã§ãããããã³ãŒããå€§å¹ ã«ç°¡çŽ åãããŸãã