ãªã¢ã¯ãã£ããã©ãŒã ã䜿çšãããšãHTMLãã³ãã¬ãŒãã§ã¿ã€ãã«ã«ãšã©ãŒã衚瀺ãããŸãã
æå¹ãªååãå
¥åããŠãã ããã
ãformRegister.controls.company.invalid && formRegister.controls.company.touchedãã¯äž¡æ¹ãšããšã©ãŒãšããŠäžç·ãåŒãããŠããŸãããã¢ããªã¯æ£åžžã«åäœããŸãã
@ virgil-avãã®åé¡ãåçŸãããªããžããªãäœæã§ããŸããïŒ
å ±çšäœã¿ã€ãã§ãåãåé¡ããããŸãã ãæ°ã«å ¥ã
ãããªãã¯ã¢ã¯ãŒïŒTimeSpan | ã¹ããªã³ã°;
ãšã©ãŒïŒ
èå¥åãhhMMããå®çŸ©ãããŠããŸããã '
hhMMã¯TimeSpanã®æå¹ãªã¡ã³ããŒã§ãããHourã¯anyã®ããã«æ±ãããŠããããã§ã;ïŒ
@wupazããªãã®äŸã¯ãæååãã¡ã³ããŒãšããŠhhMM
ãæãããå
±çšäœã¿ã€ãã«ã¯æ§æã¿ã€ããå
±éã«æã€ã¡ã³ããŒãããªããããäºæ³ãããŸãã
TypeScriptã¯åæ§ã®ãšã©ãŒãå ±åã
ãªã¢ã¯ãã£ããã©ãŒã ã§ããã®åé¡ãçºçããŠããŸãã
äžæçãªåé¿çã¯ããã©ã±ããããããã£ã¢ã¯ã»ãµãŒåŒã䜿çšããŠããããã£ã«ã¢ã¯ã»ã¹ããããšã§ãã
formRegister.controls['company'].invalid
ãŸãããããå®éã«ååŸããŸãã ããã¯TSã§ãåé¡ã ã£ããšæããŸãããä»ã¯ããŸããã£ãŠããããã§ãã å°ãªããšãTS2.4.0ãšAngular4.3.0ã§ã¯ïŒ
FormGroup.controlsããããã£ã®ã¿ã€ãå®çŸ©ã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
(property) FormGroup.controls: {
[key: string]: AbstractControl;
}
ãããã¯äž¡æ¹ãšãç§ã«ãšã£ãŠTSã§æ©èœããŸããããããè¡šèšã¯èšèªãµãŒãã¹å ã§æå¥ãèšããŸãã
form.controls['birthday']
form.controls.birthday
@intellixãããåã
v2.5.2
åãã§ãã
ç§ã¯å人ãèšã£ãããã«tscv2.5.2ã§åãåé¡ãæ±ããŠããŸã
ãã®åé¡ãåçŸãããªããžããªãäœæã§ããŸããïŒ
@chuckjazç§ã¯ãã£ââãšè¯ããã®ãäœãããšãã§ããŸãïŒãªããžããªã¯ãããŸããã
ãã¹ããããšããããã®åé¡ã¯ãœãŒã¹ã³ãŒããnpmããã±ãŒãžãšã¯ãŸã£ããé¢ä¿ããªãããšãããããŸããã ç§ã¯ãã®åé¡ãæ±ãå§ãã次ã«å¥ã®ãŠãŒã¶ãŒãšããŠãã°ã€ã³ããã¹ããããŸã£ããåããã£ã¬ã¯ããªã§Visual Studio Codeãèµ·åããŸãããããã®ãšãã£ã¿ãŒã§ãšã©ãŒã¯çºçããŸããã§ããã
ããã¯ããšã©ãŒããšãã£ã¿ãŒã«ã®ã¿è¡šç€ºãããã³ã³ãã€ã©ãŒããã«ãæã«æå¥ãèšããªãããšãšãäžèŽããŠããŸãã
ãããã£ãŠãæããã«ãŠãŒã¶ãŒããšã®éãã§ãã 次ã«ãconfigãã£ã¬ã¯ããªã®åé€ããã¹ããããšãããåé¡ã¯è§£æ±ºããŸããã å€ããã£ã¬ã¯ããªãåã³ç§»åãããšãåé¡ãåçºããŸãã
$ mv ~/.config/{,old.}Code
$ code .
$ mv ~/.config/{,new.}Code
$ mv ~/.config/{old.,}Code
$ code .
ãã®ããããããããªã¬ãŒããconfigãã£ã¬ã¯ããªã«ããã€ãã®ãããããå
¥ããŸããïŒããã€ãã®ãã£ãã·ã¥ãç§ã®æšæž¬ã§ãïŒã ãšãã£ã¿ã®èµ·åçŽåŸã«name.valid
valid
ã®äžã«ããŠã¹ã眮ããšããèªã¿èŸŒã¿äž...ãã®ããŒã«ããããæ°ç§é衚瀺ãããŠããæ¶ãããšã©ãŒãçºçããŸãã 2åç®ä»¥éã¯ããããŒãããšããã«ãšã©ãŒã衚瀺ãããŸãã
ç§ã¯ãŠãŒã¶ãŒã®éãã远跡ããŸããããããŠããã¯vscodeæ¡åŒµæ©èœAngular.ng-template
ããŒãžã§ã³0.1.7ã®åå²æãã§ãã ãããŠããã®åé¡ãåçŸãããªããžããªãæäŸã§ããããã«ãªããŸããã
name.valid
ãšä»ã®4ã€ã®èå¥åã«èµ€ãäžç·ãä»ããŸãïŒããã³[Angular] Identifier 'valid' is not defined. 'NgModel' does not contain such a member
ããŒã«ããããšã©ãŒïŒããããã¯v7.0.0
ã«é¢é£ããŠããŸãããsrc / app /app.moduleãå«ãæåã®ã³ãããã§ãã2016-08-21ã®commitbd5ad5f0ïŒFeature / ng2 rc5ïŒïŒ875ïŒïŒã«å¯ŸããŠããã¹ãããŸããã .tsã§ãããããã§ããšã©ãŒãçºçãããããããã¯ãã®ãªããžããªã®ãã¹ãŠã®ããŒãžã§ã³ã§åé¡ã«ãªããšæããŸãã
angle-electron-dream-starterã¯https://github.com/AngularClass/angular-starterã®ãã©ãŒã¯ã§ããããããã®ãªããžããªã§ããããããã¹ãããŸããããåé¡ã¯çºçããŸããããããŒã«ãããã«æå¹ãªæ å ±ãå«ãŸããŠããŸãïŒ
ããšããšvscodeããŒãžã§ã³1.17.2ïŒcommit b813d129ïŒã§ãã¹ããããŸããã ããŒãžã§ã³1.8.0ïŒcommit dcee22027ïŒã«æŽæ°ããåŸãçµæã¯åãã§ãã
Githubã®ãŸã£ããã°ãããæ·»ä»ãã¡ã€ã«åŠçã®ããããããã¯ããã§base64ãšã³ã³ãŒããããŠããŸãã
RnJvbSAyYzgxMTJmYzJhM2I2M2FkZjVmZjA0MDQ3NTcyNjAyMjc2ZWMwYmZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E / SD1DMz1BNWtvbj0yMEw9QzM9Qjh2ZGFsPz0g
PGtvZGVAZGVua3VsZS5ubz4KRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAyMDozMDoyMCArMDEwMApT
dWJqZWN0OiBbUEFUQ0hdIEltcG9ydCBvZiBleGFtcGxlIGZyb20gaHR0cHM6Ly9hbmd1bGFyLmlv
L2d1aWRlL2Zvcm1zCgotLS0KIHNyYy9hcHAvYXBwLmNvbXBvbmVudC5odG1sICAgICAgIHwgNDAg
KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYXBwL2FwcC5tb2R1bGUudHMgICAgICAg
ICAgICB8ICA1ICsrKy0KIHNyYy9hcHAvaGVyby1mb3JtLmNvbXBvbmVudC5odG1sIHwgNTggKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2FwcC9oZXJvLWZvcm0u
Y29tcG9uZW50LnRzICAgfCAyMSArKysrKysrKysrKysrKysKIHNyYy9hcHAvaGVyby50cyAgICAg
ICAgICAgICAgICAgIHwgIDkgKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9hcHAvYXBwLmNvbXBv
bmVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2FwcC9oZXJvLWZvcm0uY29tcG9uZW50
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYXBwL2hlcm8tZm9ybS5jb21wb25lbnQudHMK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYXBwL2hlcm8udHMKCmRpZmYgLS1naXQgYS9zcmMvYXBw
L2FwcC5jb21wb25lbnQuaHRtbCBiL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4YWE1N2EKLS0tIC9kZXYvbnVsbAorKysgYi9z
cmMvYXBwL2FwcC5jb21wb25lbnQuaHRtbApAQCAtMCwwICsxLDQwIEBACis8bmF2PgorCTxhIFty
b3V0ZXJMaW5rXT0iIFsnLi8nXSAiCisJCXJvdXRlckxpbmtBY3RpdmU9ImFjdGl2ZSIgW3JvdXRl
ckxpbmtBY3RpdmVPcHRpb25zXT0gIntleGFjdDogdHJ1ZX0iPgorCQlJbmRleAorCTwvYT4KKwk8
YSBbcm91dGVyTGlua109IiBbJy4vaG9tZSddICIKKwkJcm91dGVyTGlua0FjdGl2ZT0iYWN0aXZl
IiBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPSAie2V4YWN0OiB0cnVlfSI + CisJCUhvbWUKKwk8
L2E + CisJPGEgW3JvdXRlckxpbmtdPSIgWycuL2RldGFpbCddICIKKwkJcm91dGVyTGlua0FjdGl2
ZT0iYWN0aXZlIiBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPSAie2V4YWN0OiB0cnVlfSI + CisJ
CURldGFpbAorCTwvYT4KKwk8YSBbcm91dGVyTGlua109IiBbJy4vYmFycmVsJ10gIgorCQlyb3V0
ZXJMaW5rQWN0aXZlPSJhY3RpdmUiIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109ICJ7ZXhhY3Q6
IHRydWV9Ij4KKwkJQmFycmVsCisJPC9hPgorCTxhIFtyb3V0ZXJMaW5rXT0iIFsnLi9hYm91dCdd
ICIKKwkJcm91dGVyTGlua0FjdGl2ZT0iYWN0aXZlIiBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNd
PSAie2V4YWN0OiB0cnVlfSI + CisJCUFib3V0CisJPC9hPgorPC9uYXY + CisKKzxtYWluPgorCTxh
cHAtaGVyby1mb3JtPjwvYXBwLWhlcm8tZm9ybT4KKwk8cm91dGVyLW91dGxldD48L3JvdXRlci1v
dXRsZXQ + Cis8L21haW4 + CisKKzxwcmUgY2xhc3M9ImFwcC1zdGF0ZSI + dGhpcy5zdGF0ZSQgPSB7
eyBzdGF0ZSQgfCBhc3luYyB8IGpzb24gfX08L3ByZT4KKworPGZvb3Rlcj4KKwk8c3Bhbj4KKwkJ
QW5ndWxhciBFbGVjdHJvbiBEcmVhbSBTdGFydGVyIGJ5IDxhIChjbGljayk9Im9wZW5VUkwodXJs
KSIgaHJlZj0iIyI + QENvbGluU2tvdzwvYT4KKwk8L3NwYW4 + CisJPGRpdj4KKwkJPGEgW2hyZWZd
PSJ1cmwiPgorCQkJPGltZyBbc3JjXT0iYW5ndWxhcmNsYXNzTG9nbyIgd2lkdGg9IjI1JSI + CisJ
CTwvYT4KKwk8L2Rpdj4KKzwvZm9vdGVyPgpkaWZmIC0tZ2l0IGEvc3JjL2FwcC9hcHAubW9kdWxl
LnRzIGIvc3JjL2FwcC9hcHAubW9kdWxlLnRzCmluZGV4IGZlYzI0NTcuLjFjNjEyZWIgMTAwNjQ0
Ci0tLSBhL3NyYy9hcHAvYXBwLm1vZHVsZS50cworKysgYi9zcmMvYXBwL2FwcC5tb2R1bGUudHMK
QEAgLTc3LDYgKzc3LDggQEAgaWYgKEVOViA9PT0gJ2RldmVsb3BtZW50JykgewogICBDT05ESVRJ
T05BTF9JTVBPUlRTLnB1c2goU3RvcmVNb2R1bGUuZm9yUm9vdChyZWR1Y2VycywgeyBtZXRhUmVk
dWNlcnMgfSkpOwogfQogCitpbXBvcnQgeyBIZXJvRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaGVy
by1mb3JtLmNvbXBvbmVudCc7CisKIC8qKgogICogYEFwcE1vZHVsZWAgaXMgdGhlIG1haW4gZW50
cnkgcG9pbnQgaW50byBBbmd1bGFyMidzIGJvb3RzdHJhcGluZyBwcm9jZXNzCiAgKi8KQEAgLTg3
LDcgKzg5LDggQEAgaWYgKEVOViA9PT0gJ2RldmVsb3BtZW50JykgewogICAgIEFib3V0Q29tcG9u
ZW50LAogICAgIEhvbWVDb21wb25lbnQsCiAgICAgTm9Db250ZW50Q29tcG9uZW50LAotICAgIFhM
YXJnZURpcmVjdGl2ZQorICAgIFhMYXJnZURpcmVjdGl2ZSwKKyAgICBIZXJvRm9ybUNvbXBvbmVu
dCwKICAgXSwKICAgaW1wb3J0czogWyAvLyBpbXBvcnQgQW5ndWxhcidzIG1vZHVsZXMKICAgICBC
cm93c2VyTW9kdWxlLApkaWZmIC0tZ2l0IGEvc3JjL2FwcC9oZXJvLWZvcm0uY29tcG9uZW50Lmh0
bWwgYi9zcmMvYXBwL2hlcm8tZm9ybS5jb21wb25lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wZmM2YjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2FwcC9oZXJv
LWZvcm0uY29tcG9uZW50Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI + CisgICAgICA8ZGl2IFtoaWRkZW5dPSJzdWJtaXR0ZWQiPgorICAgICAgICA8aDE +
SGVybyBGb3JtPC9oMT4KKyAgICAgICAgPGZvcm0gKG5nU3VibWl0KT0ib25TdWJtaXQoKSIgI2hl
cm9Gb3JtPSJuZ0Zvcm0iPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAg
ICAgICAgICAgPGxhYmVsIGZvcj0ibmFtZSI + TmFtZTwvbGFiZWw + CisgICAgICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9Im5hbWUiCisgICAgICAgICAg
ICAgICAgICAgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT0ibW9kZWwu
bmFtZSIgbmFtZT0ibmFtZSIKKyAgICAgICAgICAgICAgICAgICAjbmFtZT0ibmdNb2RlbCI + Cisg
ICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPSJuYW1lLnZhbGlkIHx8IG5hbWUucHJpc3RpbmUiCisg
ICAgICAgICAgICAgICAgIGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPgorICAgICAgICAgICAg
ICBOYW1lIGlzIHJlcXVpcmVkCisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4K
KyAgICAgCisgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI + CisgICAgICAgICAgICA8
bGFiZWwgZm9yPSJhbHRlckVnbyI + QWx0ZXIgRWdvPC9sYWJlbD4KKyAgICAgICAgICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iYWx0ZXJFZ28iCisgICAgICAg
ICAgICAgICAgICAgWyhuZ01vZGVsKV09Im1vZGVsLmFsdGVyRWdvIiBuYW1lPSJhbHRlckVnbyI +
CisgICAgICAgICAgPC9kaXY + CisgICAgIAorICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3Jv
dXAiPgorICAgICAgICAgICAgPGxhYmVsIGZvcj0icG93ZXIiPkhlcm8gUG93ZXI8L2xhYmVsPgor
ICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icG93ZXIiCisgICAg
ICAgICAgICAgICAgICAgIHJlcXVpcmVkCisgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCld
PSJtb2RlbC5wb3dlciIgbmFtZT0icG93ZXIiCisgICAgICAgICAgICAgICAgICAgICNwb3dlcj0i
bmdNb2RlbCI + CisgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPSJsZXQgcG93IG9mIHBvd2Vy
cyIgW3ZhbHVlXT0icG93Ij57e3Bvd319PC9vcHRpb24 + CisgICAgICAgICAgICA8L3NlbGVjdD4K
KyAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09InBvd2VyLnZhbGlkIHx8IHBvd2VyLnByaXN0aW5l
IiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj4KKyAgICAgICAgICAgICAgUG93ZXIgaXMgcmVx
dWlyZWQKKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwvZGl2PgorICAgICAKKyAgICAg
ICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyIgW2Rpc2Fi
bGVkXT0iIWhlcm9Gb3JtLmZvcm0udmFsaWQiPlN1Ym1pdDwvYnV0dG9uPgorICAgICAgICAgIDxi
dXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiAoY2xpY2spPSJuZXdI
ZXJvKCk7IGhlcm9Gb3JtLnJlc2V0KCkiPk5ldyBIZXJvPC9idXR0b24 + CisgICAgICAgIDwvZm9y
bT4KKyAgICAgIDwvZGl2PgorICAgICAKKyAgICAgIDxkaXYgW2hpZGRlbl09IiFzdWJtaXR0ZWQi
PgorICAgICAgICA8aDI + WW91IHN1Ym1pdHRlZCB0aGUgZm9sbG93aW5nOjwvaDI + CisgICAgICAg
IDxkaXYgY2xhc3M9InJvdyI + CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXhzLTMiPk5hbWU8
L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtOSAgcHVsbC1sZWZ0Ij57eyBtb2Rl
bC5uYW1lIH19PC9kaXY + CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ci
PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC14cy0zIj5BbHRlciBFZ288L2Rpdj4KKyAgICAg
ICAgICA8ZGl2IGNsYXNzPSJjb2wteHMtOSBwdWxsLWxlZnQiPnt7IG1vZGVsLmFsdGVyRWdvIH19
PC9kaXY + CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbC14cy0zIj5Qb3dlcjwvZGl2PgorICAgICAgICAgIDxkaXYgY2xh
c3M9ImNvbC14cy05IHB1bGwtbGVmdCI + e3sgbW9kZWwucG93ZXIgfX08L2Rpdj4KKyAgICAgICAg
PC9kaXY + CisgICAgICAgIDxicj4KKyAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmlt
YXJ5IiAoY2xpY2spPSJzdWJtaXR0ZWQ9ZmFsc2UiPkVkaXQ8L2J1dHRvbj4KKyAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny
Yy9hcHAvaGVyby1mb3JtLmNvbXBvbmVudC50cyBiL3NyYy9hcHAvaGVyby1mb3JtLmNvbXBvbmVu
dC50cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjY1ZmI5Ci0tLSAvZGV2
L251bGwKKysrIGIvc3JjL2FwcC9oZXJvLWZvcm0uY29tcG9uZW50LnRzCkBAIC0wLDAgKzEsMjEg
QEAKK2ltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnOworCitpbXBvcnQg
eyBIZXJvIH0gZnJvbSAnLi9oZXJvJzsKKworQENvbXBvbmVudCh7CisJc2VsZWN0b3I6ICdhcHAt
aGVyby1mb3JtJywKKwl0ZW1wbGF0ZVVybDogJy4vaGVyby1mb3JtLmNvbXBvbmVudC5odG1sJwor
fSkKK2V4cG9ydCBjbGFzcyBIZXJvRm9ybUNvbXBvbmVudCB7CisKKwlwdWJsaWMgcG93ZXJzID0g
WydSZWFsbHkgU21hcnQnLCAnU3VwZXIgRmxleGlibGUnLCAnU3VwZXIgSG90JywgJ1dlYXRoZXIg
Q2hhbmdlciddOworCXB1YmxpYyBtb2RlbCA9IG5ldyBIZXJvKDE4LCAnRHIgSVEnLCB0aGlzLnBv
d2Vyc1swXSwgJ0NodWNrIE92ZXJzdHJlZXQnKTsKKworCXB1YmxpYyBzdWJtaXR0ZWQgPSBmYWxz
ZTsKKworCXB1YmxpYyBvblN1Ym1pdCgpIHsgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlOyB9CisKKwlw
dWJsaWMgbmV3SGVybygpIHsKKwkJdGhpcy5tb2RlbCA9IG5ldyBIZXJvKDQyLCAnJywgJycpOwor
CX0KK30KZGlmZiAtLWdpdCBhL3NyYy9hcHAvaGVyby50cyBiL3NyYy9hcHAvaGVyby50cwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzQ5YzkyCi0tLSAvZGV2L251bGwKKysr
IGIvc3JjL2FwcC9oZXJvLnRzCkBAIC0wLDAgKzEsOSBAQAorZXhwb3J0IGNsYXNzIEhlcm8gewor
CWNvbnN0cnVjdG9yKAorCQlwdWJsaWMgaWQ6IG51bWJlciwKKwkJcHVibGljIG5hbWU6IHN0cmlu
ZywKKwkJcHVibGljIHBvd2VyOiBzdHJpbmcsCisJCXB1YmxpYyBhbHRlckVnbz86IHN0cmluZwor
CSkgeworCX0KK30KLS0gCjIuMTMuNgoK
ç§ã¯åæ§ã®åé¡ã«çŽé¢ããŠããŸãã ãã©ã°ã€ã³ã¯ãã¯ã©ã¹ã§çŽæ¥å®£èšãããå€æ°ã®ã¿ãèªèããformGroupãŸãã¯formBuilderã®äžã«ãã¹ããããå€æ°ã¯èªèããªãããã§ãã
ãã®ã³ã³ããŒãã³ãã³ãŒãã¯ã2ã€ã®FromControlãã£ãŒã«ãã«å¯ŸããŠHTMLã§ãšã©ãŒSquiggliesãæäŸããŸã-
export class MyDetailComponent implements OnInit {
myForm: FormGroup;
constructor() { }
ngOnInit() {
this.myForm = new FormGroup({
name: new FormControl({ value: '', disabled: true }),
gender: new FormControl({ value: '', disabled: true })
});
}
}
äžæ¹ãããã¯ã¯ã©ã¹ã§FormControlãçŽæ¥å®£èšããŠããããããšã©ãŒã®æ³¢ç·ã¯çºçããŸããïŒangularã§ã¯ãã©ãŒã ã°ã«ãŒãã®å€éšã§formcontrol宣èšãèš±å¯ãããŠããªããããæ®å¿µãªããããã¯è§£æ±ºçã§ã¯ãããŸããïŒ-
export class MyDetailComponent implements OnInit {
myForm: FormGroup;
name: FormControl;
gender: FormControl;
constructor() { }
ngOnInit() {
this.myForm = new FormGroup({
name: new FormControl({ value: '', disabled: true }),
gender: new FormControl({ value: '', disabled: true })
});
}
}
ã!!ããä»å ããŠã¿ãŠãã ããã
ããªãããŒã§ããã
ç§ã¯ãã®ããã«æåããŸããã
@hlovdalåçŸæé ãè©ŠããŸãããããšã©ãŒãçæã§ããŸããã§ããã ããŸãããããã§ãã
VS Code Linux v1.20.1ãTypescript 2.6.2ãAngular.ng-templatev0.1.9ã䜿çšããŠãã¹ãããŸãã
åé¡ãAngular.ng-templatev0.1.9ã«ãŸã ååšãããã©ããã確èªã§ããŸããïŒ
@kyliauä»æ¥ãWindowsäžã®VS Code v1.21.1ãTypescript 2.3.4ãããã³Angular.ng-templatev0.1.9ã§ãã®åé¡ãçºçããŸããã ãã©ãŒã ã®äœææ¹æ³ã¯æ¬¡ã®ãšããã§ãã
this.form = formBuilder.group({
amount: ["", Validators.compose([Validators.required, SomeCustomValidator.isValid])],
sale: [{ value: "0" }],
amountTotal: [""],
price: [{ value: "123" }, Validators.compose([Validators.required, SomeCustomValidator.isValid])],
discount: [{ value: "0" }, SomeCustomValidator.isValid],
priceAfterDiscount: [""],
sum: [""],
sumDph: [""]
});
ãããŠããã³ãã¬ãŒãã§ã¯ã次ã®ããã«å°éããããšããŸãã
<ion-item [class.invalid]="!buyForm.controls.amount.valid && (buyForm.controls.amount.dirty || submitAttempt)">
ãã®ãšã©ãŒãçºçããïŒ
[Angular] Identifier 'amount' is not defined. '__type' does not contain such a member
åŠå®ãããå Žåããšã©ãŒã¯ã¹ããŒãããŸããïŒã€ãŸãã !buyForm.controls.amount.valid
éšåã§ã¯ãªãã buyForm.controls.amount.dirty
ã®ã¿ã«äžç·ãåŒãããŸãïŒã ããããäžèšã®è§£æ±ºçïŒäºéåŠå®ã䜿çšïŒãæ©èœããçç±ã§ãã
ç§ã¯äœå¹Žãã®éããã®åé¿çãæ¢ããŠããŸãã-ããããšã
@guhyeonããããšãããããŸããããããäœãããã®ã説æã§ããŸããïŒ
@rubenheymans
ããŒãšâŠããŸãããããŸããã
ã¿ã€ãã¹ã¯ãªããã³ã³ãã€ã©ã®åé¡ã ãšæããŸãã
å¶ç¶ã«åŠãã ã®ã¯äŸ¿å©ã§ãã
代ããã«ãã®åé¿çã䜿çšããŠã¿ãŸãããããã«ãããvscode Angular LanguageServiceããã®äžæºããªããªããŸãã
password.hasError('required')
ãã¹ã¯ãŒãFormControlã§Validators.required
ããªããŒã¿ãŒã䜿çš
AbstractControl.hasError()
ã¯ããããã°ã®ããã«AbstractControl.errors
ããããã£ãç»é¢ã«è¡šç€ºããŠååŸããerrorCodeå€ãå¿
èŠã§ãã
{{password.errors | json}}
ãçµæïŒ { "required": true }
æ¢ç¥ã®errorCodeãã«ã¹ã¿ã ããªããŒã¿ãŒã«ã€ããŠã¯ãããã«å ¥åã§ããå¯èœæ§ããããŸãã
typescriptã³ã³ãã€ã©ã§ãåãåé¡ãçºçããŸãã
@ ajaysake1992ãšåã
å
éšçã«ã¯ãããã¯ïŒ149ãšåãåé¡ã ãšæããŸã-ã€ã³ããã¯ã¹ïŒ control?.errors['required']
ïŒã«ããã€ã³ããã¯ã¹çœ²åã§ãªããžã§ã¯ããåç
§ããããšã¯æ©èœããŸããããããè¡šèšïŒ control?.errors.required
ïŒã§
ç§ã¯ä»æ¥ãããç°¡åã«æã«å
¥ããŸããããã§ããæ€çŽ¢ãã¯å®çŸ©ãããŠããããèµ€ãæ³¢ç·ã衚瀺ãããŠããŸããã
ã¢ããªã¯æå³ãããšããã«ã³ã³ãã€ã«ãããåäœããŸããïŒå®è¡ããåã«æ³¢ç·ã解決ããããšããŠåæ¥ãè²»ãããåŸã®ç§ã®æ¬²æ±äžæºã«...ïŒ
ç§ã«ã¯vscodeã®ãã°ã®ããã«èãããŸããïŒ
ã!!ããæ°ã«å ¥ããªãå Žåã¯ãããã解決çã®åé¿çã§ãã htmlã§ã
your.component.tsïŒ
emailFormControlïŒïŒãååŸããŸãïŒä»»æã®{
this.formGroupName.getïŒ 'email'ïŒ;ãè¿ããŸãã
}
your.component.htmlïŒ
ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãã³ã³ãã€ã«ãšã©ãŒ/ã©ã³ã¿ã€ã ãšã©ãŒãçºçãããããšãªããç§ã®ããã«æ©èœããŸãã
ããã¯ç§ã®ããã«åããïŒ
ãšã©ãŒãããŒã¯ããè¡ã§ãã¿ã°ïŒ>ïŒãéããåã«ã¹ããŒã¹ããŒã§ã¹ããŒã¹ãäœæãããšããšã©ãŒãæ¶ããŸããã
äœæããã¹ããŒã¹ãåé€ããŸãããããšã©ãŒããªããã¹ãŠæ£åžžã§ããã
ãŸãããŸã£ããåãåé¡ãçºçããŠããŸãã FormBuilderã§äœæãããFormGroupã³ã³ãããŒã«ã¯ããã¥ãŒãã³ãã¬ãŒãã«å¯ŸããVSCodeã®ã€ã³ããªã»ã³ã¹ãšããŠèªèãããŠããŸããã !!ã§ã¯ãªããããã«å¯ŸããŠå¯èœãªå®éã®ä¿®æ£ããããã©ããã®ã¢ã€ãã¢ã åé¿ç
ãããæŒç®åã®ä»£ããã«è§æ¬åŒ§ã䜿çšããŠãããããã£åã«ã¢ã¯ã»ã¹ã§ããŸãã ããã«ãããã³ã³ãã€ã«ãšã©ãŒãä¿®æ£ãããå¯èœæ§ããããŸãã
äŸ-* ngIf = "price.errors [required]"
ãããŒããã©ã±ããã¯èµ€ã解決ããŸãã ããã¯æ£çºçã§ããããšã確èªã§ããŸãã
Angular: 7.2.15
ã typescript: 3.1.6
ã VSC 1.35.1
ãŸãã
ããã¯ãã«ã¹ã¿ã ãã©ãŒã ããªããŒã¿ãŒãšçµã¿èŸŒã¿ãã©ãŒã ããªããŒã¿ãŒïŒå¿ é ãªã©ïŒã®äž¡æ¹ãåããAngular8.1.3ã§ãåŒãç¶ãçºçããŸãã ç»é²ãããããªããŒã¿ãŒãã€ã³ããªã»ã³ã¹ã«å¯ŸããŠæ確ã§ãããšãããããã°ãããã§ãããã VSC1.36.1ã®å®è¡ã
åé¿çïŒããã泚éã®ä»£ããã«è§ãã£ã泚éã䜿çšãããã!! formcontrol.errors.requiredã䜿çšããŸã
åé¿çã¯ãã€ã³ããªã»ã³ã¹ãæªå®çŸ©ã®å€ã®ããã«ãããããŒã¯ããå¯èœæ§ããããã©ãããç§ã«èããããŸããïŒ ãšã©ãŒãªããžã§ã¯ãã¯ç/åœã®ãã©ã°ã®ã»ããã§ã¯ãªããåè¿°ã®ãã©ã°ã®ååšã«ãã£ãŠå®çŸ©ãããããïŒIMOã¯ç°åžžãªãã¿ãŒã³ã§ãïŒãã€ã³ããªã»ã³ã¹ã«åé¡ããããšæ³åã§ããŸãã
@ivanwonderã¯ããã®åé¡ã®PRããã§ã«äœæããŠããŸãã ããã§ã圌ãããããããŒãžãããŸã§åŸ ã¡ãŸãããã
åé¿çïŒ
ã®ä»£ããã«ïŒ
formGroup.errors?.customValidator
䜿çšããïŒ
formGroup.errors && formGroup.errors['customValidator']
åé¿çãããããšãããããæããŸã...ããããåé¡ã®èª¿æ»äžã«äœãé²å±ã¯ãããŸãããïŒ
ç§ãã¡ã®å€ãã¯ãåçŽãªãããè¡šèšã奜ããšç¢ºä¿¡ããŠããŸãã
ãã®åé¡ã¯v0.802.3ã§ãåŒãç¶ãååšããŸã
ãã®åé¡ã¯ãéã¢ã¯ãã£ãã®ããã«èªåçã«ããã¯ãããŠããŸãã
åæ§ã®åé¡ãŸãã¯é¢é£ããåé¡ãçºçããå Žåã¯ãæ°ããåé¡ãæåºããŠãã ããã
èªåäŒè©±ããã¯ããªã·ãŒã®è©³çŽ°ãã芧ãã ããã
_ãã®ã¢ã¯ã·ã§ã³ã¯ãããã«ãã£ãŠèªåçã«å®è¡ãããŸããã_
æãåèã«ãªãã³ã¡ã³ã
ãªã¢ã¯ãã£ããã©ãŒã ã§ããã®åé¡ãçºçããŠããŸãã
äžæçãªåé¿çã¯ããã©ã±ããããããã£ã¢ã¯ã»ãµãŒåŒã䜿çšããŠããããã£ã«ã¢ã¯ã»ã¹ããããšã§ãã