Vscode-ng-language-service: 不明なメソッド.bind

作成日 2017年05月09日  ·  41コメント  ·  ソース: angular/vscode-ng-language-service

Ionic3プロジェクトでVSCodev1.12.1とAngularLanguage Service v0.1.3を使用していますが、すべて問題がないにもかかわらず、これらの警告が表示されます...

bug

最も参考になるコメント

Angular6でも同じ問題があります。

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

エディターだけで、すべてが正常に動作し、実行中にエラーは表示されません。

[Angular]不明なメソッド 'bind'

全てのコメント41件

私はこれをAngularLanguageServiceとVSCode1.13で見ました。 Heroesチュートリアルで(save())メソッドをhero-detail-component.htmlに追加すると発生します

コードは正常に機能しますが、メソッドが明確に存在していても、赤い波線が表示されます。

@bkbonnerhttps://angular.io/generated/zips/toh-pt6/toh-pt6.zipでこれを再現することはできませんこの問題を示すこれに変更がありますか。

コードベースを送信してみることができます。 私に何か違うものがあるかどうか見てみましょう。

こんにちは@chuckjaz 。 したがって、.tsファイルに移動して変更し、save()メソッドを削除してから、対応するhtmlファイルに移動し、htmlファイルのメソッド名呼び出しを変更すると、下線が引かれます。 メソッドを.ts側に追加し直して、.htmlファイルに戻ると、ctrl + spaceをクリックして、ドロップダウンでメソッドオプションの1つを選択するまで、波線が残ります。

これが以前の動作であったかどうかはわかりませんが、メソッドの存在の検証がどのようにトリガーされているかが、混乱を招く結果を引き起こしている可能性があります。

https://youtu.be/UjfFprgvTQg音声なしのビデオを含めましたが、それを説明するためにクローズドキャプションを含めました。

私も同じ問題に直面しています...

テンプレートで.bindを使用しても同じ問題が発生します。

動作しますが、エラーが発生します。

ここに同じ問題を+1

まだ解決策はありますか?

ここでも+1!

+1まったく同じ問題。 更新はありますか?

ここで.bind(this)と同じエラー。

Angular言語サービスを使用したVSCodeでまだ発生していることを確認しました。 Ionic 3、Angular5。

VS Code1.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'

ここで同じ問題Ionic3Angular5

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
Chrome:58.0.3029.110
Node.js:7.9.0
V8:5.8.283.38
アーキテクチャ:x64

Angular5とVSCode1.26.0で同じエラー

Angular6でも同じ問題があります。

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

エディターだけで、すべてが正常に動作し、実行中にエラーは表示されません。

[Angular]不明なメソッド 'bind'

同じことが私にも起こります。

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

私が同じ問題を抱えているとみんなが言う代わりに、この警告を抑える方法はありますか?

このような関数名の後にセミコロンを追加してみてください


テストボタン

これは警告を取り除くようです。

正直なところ、これがまだ問題であるかどうかはわかりません。
それ以来、VS CodeとALSは大幅に更新されており、この警告は長い間見られませんでした...

はい、これはまだ問題です。
image

VS Code About:

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

入れてみてください; it.On 2019年2月18日5:09後、ラファエル[email protected]書いた:はい、これはまだ問題です。

VS Code About:
バージョン:1.31.1
コミット:1b8e8302e405050205e69b59abb3559592bb9e60
日付:2019-02-12T02:19:29.629Z
電子:3.1.2
Chrome:66.0.3359.181
Node.js:10.2.0
V8:6.6.346.32
OS:Linux x644.15.0-45-汎用

-コメントしたため、これを受け取っています。このメールに直接返信するか、GitHubで表示するか、スレッドをミュートしてください。

@multilexusこれは機能していません。

はい、これはまだ問題です。
image

VS Code About:

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は正しいです私はVSコード1.31.1でAngular7を使用しています

それはまだ問題です。 連絡あった?

同じことが私にも起こります。

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

このように書く
[myFun] = 'handleFun'
--- htmlで

this.handleFun = this.myService.myFunc.bind(myService);
--tsファイル内

はい、これはまだ問題です。
image
VS Code About:

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関数は、呼び出しごとに新しい関数を作成します。 したがって、変更が検出されるたびに新しい関数を作成します。 クラスプロパティに矢印関数を割り当てることをお勧めします。

`` `typescript
myMethod =(param1:any、param2:any)=> {
//メソッドロジック
}

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

@ andrius-praいいアイデアです。これを使用します、ありがとう。

この問題に対処するのに非常に時間がかかったことを皆さんに申し訳ありません。 上記のPRはそれを修正する必要があります。

この問題は、非アクティブのために自動的にロックされています。
同様の問題または関連する問題が発生した場合は、新しい問題を提出してください。

自動会話ロックポリシーの詳細をご覧ください。

_このアクションはボットによって自動的に実行されました。_

このページは役に立ちましたか?
0 / 5 - 0 評価