Vscode-ng-language-service: μ•Œ μˆ˜μ—†λŠ” 방법 .bind

에 λ§Œλ“  2017λ…„ 05μ›” 09일  Β·  41μ½”λ©˜νŠΈ  Β·  좜처: angular/vscode-ng-language-service

Ionic 3 ν”„λ‘œμ νŠΈμ™€ ν•¨κ»˜ VS Code v1.12.1 및 Angular Language Service v0.1.3을 μ‚¬μš©ν•˜κ³  있으며 λͺ¨λ“  것이 정상 μž„μ—λ„ λΆˆκ΅¬ν•˜κ³  μ΄λŸ¬ν•œ κ²½κ³ κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

Angular 6μ—μ„œλ„ 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

[displayWith]="displayFn.bind(this)"

λͺ¨λ“  것이 잘 μž‘λ™ν•˜λ©° νŽΈμ§‘κΈ°μ—μ„œ μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ 였λ₯˜κ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

[Angular] μ•Œ μˆ˜μ—†λŠ” 방법 'bind'

λͺ¨λ“  41 λŒ“κΈ€

방금 Angular Language Service와 VS Code 1.13μ—μ„œ 이것을 λ³΄μ•˜μŠ΅λ‹ˆλ‹€. hero-detail-component.html에 (save ()) λ©”μ„œλ“œλ₯Ό μΆ”κ°€ ν•  λ•Œ Heroes Tutorialμ—μ„œ λ°œμƒν•©λ‹ˆλ‹€.

μ½”λ“œλŠ” 잘 μž‘λ™ν•˜μ§€λ§Œ λ©”μ„œλ“œκ°€ λͺ…ν™•ν•˜κ²Œ μ‘΄μž¬ν•˜λ”λΌλ„ 빨간색 ꡬ뢈 ꡬ뢈 ν•œ 선이 ν‘œμ‹œλ©λ‹ˆλ‹€.

@bkbonner https://angular.io/generated/zips/toh-pt6/toh-pt6.zip으둜 이것을 μž¬ν˜„ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.이 문제λ₯Ό λ³΄μ—¬μ£ΌλŠ” μˆ˜μ • 사항이 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄ μ½”λ“œλ² μ΄μŠ€λ₯Ό 보내렀고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ 당신이 μž‘λ™ ν•  μˆ˜μžˆλŠ” λ‹€λ₯Έ 것이 μžˆλŠ”μ§€ 보자.

μ•ˆλ…•ν•˜μ„Έμš” @chuckjaz . λ”°λΌμ„œ .ts νŒŒμΌμ„ μˆ˜μ •ν•˜κ³  save () λ©”μ„œλ“œλ₯Ό μ œκ±°ν•œ λ‹€μŒ ν•΄λ‹Ή html 파일둜 μ΄λ™ν•˜μ—¬ html νŒŒμΌμ—μ„œ λ©”μ„œλ“œ 이름 ν˜ΈμΆœμ„ μˆ˜μ •ν•˜λ©΄ 밑쀄이 κ·Έμ–΄μ Έ μžˆμŠ΅λ‹ˆλ‹€. .tsμͺ½μ— λ©”μ„œλ“œλ₯Ό λ‹€μ‹œ μΆ”κ°€ν•˜κ³  .html 파일둜 λŒμ•„ κ°€λ©΄ ctrl + spaceλ₯Ό ν΄λ¦­ν•˜κ³  λ“œλ‘­ λ‹€μš΄μ—μ„œ λ©”μ„œλ“œ μ˜΅μ…˜ 쀑 ν•˜λ‚˜λ₯Ό 선택할 λ•ŒκΉŒμ§€ ꡬ뢈 ꡬ뢈 ν•œ 선이 μœ μ§€λ©λ‹ˆλ‹€.

이것이 이전에 μ–΄λ–»κ²Œ μž‘λ™ν–ˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ ν˜Όλž€μŠ€λŸ¬μš΄ κ²°κ³Όλ₯Ό μœ λ°œν•˜λŠ” λ©”μ„œλ“œμ˜ μ‘΄μž¬μ— λŒ€ν•œ μœ νš¨μ„± 검사가 νŠΈλ¦¬κ±°λ˜λŠ” 방법 일 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 그것이 μ–΄λ–»κ²Œ λ³΄μ΄λŠ”μ§€ λ³΄μ—¬μ£ΌλŠ” λΉ„λ””μ˜€λ₯Ό 포함 μ‹œμΌ°μŠ΅λ‹ˆλ‹€ : https://youtu.be/UjfFprgvTQg μ˜€λ””μ˜€λŠ” μ—†μ§€λ§Œ 그것을 μ„€λͺ…ν•˜κΈ° μœ„ν•΄ μžλ§‰μ„ ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λ„ 같은 λ¬Έμ œμ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ ...

ν…œν”Œλ¦Ώμ—μ„œ .bindλ₯Ό μ‚¬μš©ν•˜λŠ” 것과 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μž‘λ™ν•˜μ§€λ§Œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

여기에 같은 호 1 개

아직 해결책이 μ—†μŠ΅λ‹ˆκΉŒ?

여기도 +1ν•˜μ„Έμš”!

+1 μ •ν™•νžˆ λ™μΌν•œ 문제. μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

.bind(this) 와 λ™μΌν•œ 였λ₯˜μž…λ‹ˆλ‹€.

각도 μ–Έμ–΄ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ VS Codeμ—μ„œ μ—¬μ „νžˆ λ°œμƒν•˜λŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. Ionic 3, Angular 5.

VS Code 1.24.1의 ν™•μž₯ 0.1.9μ—μ„œ 'hasError'도 λ°œμƒν•©λ‹ˆλ‹€.

<div *ngIf="form.get('phone').hasError(validation.type)">

hasErrorκ°€ ν•¨μˆ˜κ°€ μ•„λ‹ˆμ§€λ§Œ (Angular ν˜•μ‹μ˜ AbstractControl ν΄λž˜μŠ€μ— 있음) λΆˆν‰ν•©λ‹ˆλ‹€.

νŽΈμ§‘ : "!"λ₯Ό μΆ”κ°€ν•˜μ—¬ μˆ˜μ •ν•  수 μžˆμ§€λ§Œ κ·ΈλŸ¬λ―€λ‘œ:
<div *ngIf="form.get('phone')!.hasError(validation.type)">

get λ©”μ„œλ“œκ°€ AbstractControl _or_ null을 λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λ‚˜λŠ” μ–Έμ–΄ μ„œλΉ„μŠ€κ°€ 'hasError'κ°€ 'null'의 ν•¨μˆ˜κ°€ μ•„λ‹ˆλΌκ³  λΆˆν‰ν•˜κ³  μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. 였λ₯˜κ°€ λ‹€μŒκ³Ό κ°™μœΌλ©΄ 더 λͺ…ν™•ν•©λ‹ˆλ‹€.
The expression might be null
λ‹€λ₯Έ κΈ°λŠ₯κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ <div *ngIf="form.get('phone').errors[validation.type]">
The expression might be null 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ˜ν•œ 항상 μ‘΄μž¬ν•΄μ•Όν•˜λŠ” $any() 와 ν•¨κ»˜ λ°œμƒν•©λ‹ˆλ‹€ (https://angular.io/guide/aot-compiler#disabling-type-checking-using-any).

μ „μ˜)

<input [(ngModel)]="$any(content).houseId" />
[Angular] Unknown method '$any'

여기에 같은 문제 Ionic3 Angular5

VS Code v1.25.1 + Angular v6.0.1 μ—μ„œ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

VS μ½”λ“œ 1.25.1μ—μ„œ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

버전 : 1.25.1
컀밋 : 1dfc5e557209371715f655691b1235b6b26a06be
λ‚ μ§œ : 2018-07-11T15 : 40 : 20.190Z
μ „μž : 1.7.12
크둬 : 58.0.3029.110
Node.js : 7.9.0
V8 : 5.8.283.38
μ•„ν‚€ν…μ²˜ : x64

Angular 5 및 VS Code 1.26.0μ—μ„œ λ™μΌν•œ 였λ₯˜

Angular 6μ—μ„œλ„ 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

[displayWith]="displayFn.bind(this)"

λͺ¨λ“  것이 잘 μž‘λ™ν•˜λ©° νŽΈμ§‘κΈ°μ—μ„œ μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ 였λ₯˜κ°€ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

[Angular] μ•Œ μˆ˜μ—†λŠ” 방법 'bind'

λ‚˜λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

[myFun]="myService.myFunc.bind(myService)"

λͺ¨λ‘κ°€ 같은 λ¬Έμ œκ°€ μžˆλ‹€κ³  λ§ν•˜λŠ” λŒ€μ‹ μ΄ κ²½κ³ λ₯Ό λ¬΄μ‹œν•  μˆ˜μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

이와 같은 ν•¨μˆ˜ 이름 뒀에 μ„Έλ―Έμ½œλ‘ μ„ μΆ”κ°€ν•΄λ³΄μ‹­μ‹œμ˜€.


ν…ŒμŠ€νŠΈ λ²„νŠΌ

이것은 κ²½κ³ λ₯Ό μ œκ±°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μ†”μ§νžˆ 이것이 μ—¬μ „νžˆ λ¬Έμ œμΈμ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
VS Code & ALSλŠ” κ·Έ μ΄ν›„λ‘œ 많이 μ—…λ°μ΄νŠΈλ˜μ—ˆμœΌλ©° μ˜€λž«λ™μ•ˆμ΄ κ²½κ³ λ₯Ό 보지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

예, 이것은 μ—¬μ „νžˆ β€‹β€‹λ¬Έμ œμž…λ‹ˆλ‹€.
image

VS μ½”λ“œ 정보 :

Version: 1.31.1
Commit: 1b8e8302e405050205e69b59abb3559592bb9e60
Date: 2019-02-12T02:19:29.629Z
Electron: 3.1.2
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.15.0-45-generic

λ„£μ–΄λ³΄μ‹­μ‹œμ˜€; 2019 λ…„ 2 μ›” 18 일 μ˜€μ „ 5:09에 Rafael [email protected] 은 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€. 예 , 이것은 μ—¬μ „νžˆ β€‹β€‹λ¬Έμ œμž…λ‹ˆλ‹€.

VS μ½”λ“œ 정보 :
버전 : 1.31.1
컀밋 : 1b8e8302e405050205e69b59abb3559592bb9e60
λ‚ μ§œ : 2019-02-12T02 : 19 : 29.629Z
μ „μž : 3.1.2
크둬 : 66.0.3359.181
Node.js : 10.2.0
V8 : 6.6.346.32
운영체제 : Linux x64 4.15.0-45-generic

β€” λŒ“κΈ€μ„ λ‹¬μ•˜ κΈ° λ•Œλ¬Έμ— 전솑 된 κ²ƒμž…λ‹ˆλ‹€.이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ λ³΄κ±°λ‚˜ λŒ€ν™” λͺ©λ‘μ„ μŒμ†Œκ±°ν•˜μ„Έμš”.

@multilexus 이것은 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

예, 이것은 μ—¬μ „νžˆ β€‹β€‹λ¬Έμ œμž…λ‹ˆλ‹€.
image

VS μ½”λ“œ 정보 :

Version: 1.31.1
Commit: 1b8e8302e405050205e69b59abb3559592bb9e60
Date: 2019-02-12T02:19:29.629Z
Electron: 3.1.2
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.15.0-45-generic

여기에도 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€ :-/ μ–΄λ–€ 해결책이라도?

각도 7 λ””μŠ€ν”Œλ ˆμ΄κ°€μžˆλŠ” +1 맀트 μžλ™ μ™„μ„± κΈ°λŠ₯
image

잘 μž‘λ™ν•˜μ§€λ§Œ κ²½κ³ 

@multilexus κ°€ λ§žμŠ΅λ‹ˆλ‹€

μ—¬μ „νžˆ λ¬Έμ œμž…λ‹ˆλ‹€. μ–΄λ–€ μ†Œμ‹μ΄λΌλ„?

λ‚˜λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

[myFun]="myService.myFunc.bind(myService)"

λ‹€μŒκ³Ό 같이 μž‘μ„± ν•˜μ‹­μ‹œμ˜€.
[myFun] = 'handleFun'
--- htmlμ—μ„œ

this.handleFun = this.myService.myFunc.bind (myService);
--ts νŒŒμΌμ—μ„œ

예, 이것은 μ—¬μ „νžˆ β€‹β€‹λ¬Έμ œμž…λ‹ˆλ‹€.
image
VS μ½”λ“œ 정보 :

Version: 1.31.1
Commit: 1b8e8302e405050205e69b59abb3559592bb9e60
Date: 2019-02-12T02:19:29.629Z
Electron: 3.1.2
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.15.0-45-generic

여기에도 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€ :-/ μ–΄λ–€ 해결책이라도?

λ‹€μŒκ³Ό 같이 μž‘μ„± ν•˜μ‹­μ‹œμ˜€.
(클릭) = 'handleFun'
--- htmlμ—μ„œ

this.handleFun = this.setLanguage.bind (this, language);
--ts νŒŒμΌμ—μ„œ

각도 7 λ””μŠ€ν”Œλ ˆμ΄κ°€μžˆλŠ” +1 맀트 μžλ™ μ™„μ„± κΈ°λŠ₯
image

잘 μž‘λ™ν•˜μ§€λ§Œ κ²½κ³ 

λ‹€μŒκ³Ό 같이 μž‘μ„± ν•˜μ‹­μ‹œμ˜€.
[displayWith] = 'displayFun'
--- htmlμ—μ„œ

this.displayFun = this.displayFun.bind (this);
--ts νŒŒμΌμ—μ„œ

Angular 7의 <ng-template> μ—μ„œ $any() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  λ•Œμ΄ 버그가 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

hasError 에 λŒ€ν•΄ μ—¬μ „νžˆ λΆˆν‰
<div *ngIf="form.get('phone').hasError(validation.type)">
VSCode 1.34.0
λ‚΄μ„  0.800.0

그듀이 그것을 κ³ μΉ  λ•ŒκΉŒμ§€ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆλ‹€ (적어도 myMethod.bind(this) :

bindMyMethodWithThis() {
    return this.myMethod.bind(this);
}

<MyComponent [myInput]="bindMyMethodWithThis()">

그듀이 그것을 κ³ μΉ  λ•ŒκΉŒμ§€ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆλ‹€ (적어도 myMethod.bind(this) :

bindMyMethodWithThis() {
    return this.myMethod.bind(this);
}

<MyComponent [myInput]="bindMyMethodWithThis()">

ν…œν”Œλ¦Ώ λ‚΄μ—μ„œ bind ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€. bind ν•¨μˆ˜λŠ” λͺ¨λ“  ν˜ΈμΆœμ—μ„œ μƒˆ ν•¨μˆ˜λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ”°λΌμ„œ λͺ¨λ“  λ³€κ²½ 감지에 λŒ€ν•΄ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μƒμ„±ν•©λ‹ˆλ‹€. 클래슀 속성에 ν™”μ‚΄ν‘œ ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

```νƒ€μž… 슀크립트
myMethod = (param1 : any, param2 : any) => {
// λ©”μ†Œλ“œ 둜직
}

```html
<MyComponent [myInput]="myMethod">

@ andrius-pra 쒋은 μƒκ°μž…λ‹ˆλ‹€. 이제 이것을 μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 μ‹œκ°„μ΄ λ„ˆλ¬΄ 였래 κ±Έλ €μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. μœ„μ˜ PR이 문제λ₯Ό ν•΄κ²°ν•΄μ•Όν•©λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” ν™œλ™μ΄ μ—†μ–΄ μžλ™μœΌλ‘œ μž κ²ΌμŠ΅λ‹ˆλ‹€.
μœ μ‚¬ν•˜κ±°λ‚˜ κ΄€λ ¨λœ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ μƒˆλ‘œμš΄ 문제λ₯Ό μ œμΆœν•˜μ‹­μ‹œμ˜€.

μžλ™ λŒ€ν™” 잠금 μ •μ±… 에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄μ‹­μ‹œμ˜€.

_이 μž‘μ—…μ€ 봇에 μ˜ν•΄ μžλ™μœΌλ‘œ μˆ˜ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€ ._

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰