Vscode-ng-language-service: Metode tidak diketahui .bind

Dibuat pada 9 Mei 2017  ·  41Komentar  ·  Sumber: angular/vscode-ng-language-service

Saya menggunakan VS Code v1.12.1, dan Angular Language Service v0.1.3, dengan proyek Ionic 3, dan saya mendapatkan peringatan ini, meskipun semuanya baik-baik saja ...

bug

Komentar yang paling membantu

Saya memiliki masalah yang sama di Angular 6.

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

Semuanya berfungsi dengan baik dan saya tidak melihat kesalahan saat berjalan, hanya di editor:

[Angular] Metode 'bind' yang tidak diketahui

Semua 41 komentar

Saya baru saja melihat ini dengan Angular Language Service dan VS Code 1.13. terjadi di Tutorial Heroes saat menambahkan metode (save ()) ke hero-detail-component.html

Kode berfungsi dengan baik, tetapi menunjukkan garis berlekuk-lekuk merah meskipun metode jelas ada.

@bkbonner Saya tidak dapat mereproduksi ini dengan https://angular.io/generated/zips/toh-pt6/toh-pt6.zip Apakah Anda memiliki modifikasi untuk ini yang menunjukkan masalah ini.

Saya dapat mencoba mengirim basis kode saya. Biarkan saya melihat apakah ada hal lain yang berbeda dalam diri saya yang memungkinkannya bekerja.

Hai @uckjaz . Jadi jika saya pergi dan memodifikasi file .ts dan menghapus metode save () dan kemudian pergi ke file html yang sesuai dan memodifikasi pemanggilan nama metode dalam file html, itu menggarisbawahi itu. Jika saya menambahkan metode kembali ke sisi .ts, dan kembali ke file .html, garis berlekuk-lekuk tetap ada sampai saya mengklik ctrl + spasi dan memilih salah satu opsi metode di menu drop-down.

Saya tidak yakin apakah ini cara perilakunya sebelumnya, tetapi mungkin cara validasi keberadaan metode dipicu yang menyebabkan hasil yang membingungkan.

Saya menyertakan video untuk menunjukkan tampilannya: https://youtu.be/UjfFprgvTQg tidak ada audio, tetapi saya menyertakan teks untuk menjelaskannya.

Saya menghadapi masalah yang sama juga ...

Saya memiliki masalah yang sama saat menggunakan .bind di template.

Berhasil tetapi kami mendapatkan kesalahan.

+1 masalah yang sama di sini

Ada solusi?

+1 di sini juga!

+1 masalah yang sama persis. Ada pembaruan?

Kesalahan yang sama dengan .bind(this) sini.

Dikonfirmasi masih terjadi di VS Code dengan layanan bahasa sudut. Ionic 3, Angular 5.

Juga terjadi dengan 'hasError' di ekstensi 0.1.9 di VS Code 1.24.1:

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

mengeluh bahwa hasError bukanlah sebuah fungsi, meskipun itu (dalam kelas bentuk Sudut AbstractControl).

Sunting: meskipun ini bisa diperbaiki dengan menambahkan "!" jadi:
<div *ngIf="form.get('phone')!.hasError(validation.type)">

Itu karena metode get mengembalikan AbstractControl _or_ null. Saya menganggap layanan bahasa mengeluh bahwa 'hasError' bukan merupakan fungsi dari 'null'. Akan lebih jelas jika kesalahannya adalah:
The expression might be null
seperti untuk fungsi lainnya, misalnya <div *ngIf="form.get('phone').errors[validation.type]">
menghasilkan kesalahan The expression might be null .

Juga terjadi dengan $any() , yang seharusnya selalu ada (https://angular.io/guide/aot-compiler#disabling-type-checking-using-any)

ex)

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

Masalah yang sama di sini Ionic3 Angular5

Saya mendapat kesalahan yang sama di VS Code v1.25.1 + Angular v6.0.1

Mendapat kesalahan yang sama dalam kode VS 1.25.1

Versi: 1.25.1.0
Komit: 1dfc5e557209371715f655691b1235b6b26a06be
Tanggal: 2018-07-11T15: 40: 20.190Z
Elektron: 1.7.12
Chrome: 58.0.3029.110
Node.js: 7.9.0
V8: 5.8.283.38
Arsitektur: x64

Kesalahan yang sama di Angular 5 dan VS Code 1.26.0

Saya memiliki masalah yang sama di Angular 6.

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

Semuanya berfungsi dengan baik dan saya tidak melihat kesalahan saat berjalan, hanya di editor:

[Angular] Metode 'bind' yang tidak diketahui

Hal yang sama terjadi pada saya.

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

Apakah ada cara untuk menyembunyikan peringatan ini daripada semua orang mengatakan saya memiliki masalah yang sama?

coba tambahkan titik koma setelah nama fungsi seperti ini


Tombol Tes

Ini sepertinya menghapus peringatan.

Sejujurnya, saya tidak tahu apakah ini masih menjadi masalah.
VS Code & ALS telah banyak diperbarui sejak saat itu, dan saya sudah lama tidak melihat peringatan ini ...

Ya, ini masih menjadi masalah.
image

VS Kode Tentang:

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

Cobalah untuk menempatkan; setelah itu Pada 18 Feb 2019 5:09 AM, Rafael [email protected] menulis: Ya , ini masih menjadi masalah.

VS Kode Tentang:
Versi: 1.31.1.0
Komit: 1b8e8302e405050205e69b59abb3559592bb9e60
Tanggal: 2019-02-12T02: 19: 29.629Z
Elektron: 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-generik

—Anda menerima ini karena Anda berkomentar.Balas email ini secara langsung, lihat di GitHub, atau nonaktifkan utas.

@multilexus ini tidak berfungsi.

Ya, ini masih menjadi masalah.
image

VS Kode Tentang:

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

Masalah yang sama di sini: - / Ada solusi?

+1 dengan tampilan sudut 7Dengan pelengkapan otomatis mat
image

Bekerja dengan baik tetapi peringatan

@multilexus benar saya bekerja dengan Angular 7 di kode VS 1.31.1

Ini masih menjadi masalah. Ada berita?

Hal yang sama terjadi pada saya.

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

tulis seperti ini: -
[myFun] = 'handleFun'
--- dalam html

this.handleFun = this.myService.myFunc.bind (myService);
--dalam file ts

Ya, ini masih menjadi masalah.
image
VS Kode Tentang:

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

Masalah yang sama di sini: - / Ada solusi?

tulis seperti ini: -
(klik) = 'handleFun'
--- dalam html

this.handleFun = this.setLanguage.bind (ini, bahasa);
--dalam file ts

+1 dengan tampilan sudut 7Dengan pelengkapan otomatis mat
image

Bekerja dengan baik tetapi peringatan

tulis seperti ini: -
[displayWith] = 'displayFun'
--- dalam html

this.displayFun = this.displayFun.bind (ini);
--dalam file ts

Menemukan bug ini saat menggunakan metode $any() di <ng-template> di Angular 7.

Masih mengeluh karena hasError masuk
<div *ngIf="form.get('phone').hasError(validation.type)">
VSCode 1.34.0
ekstensi 0.800.0

Sampai mereka memperbaikinya, ada solusi (setidaknya untuk myMethod.bind(this) :

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

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

Sampai mereka memperbaikinya, ada solusi (setidaknya untuk myMethod.bind(this) :

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

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

Itu ide yang buruk untuk menggunakan fungsi bind di dalam template. bind function membuat fungsi baru pada setiap panggilan. Jadi Anda akan membuat fungsi baru pada setiap deteksi perubahan. lebih baik menetapkan fungsi panah ke properti kelas:

`` naskah ketikan
myMethod = (param1: any, param2: any) => {
// logika metode
}

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

@ andrius-pra Ide bagus, sekarang saya akan menggunakan ini, terima kasih.

Maaf, semuanya butuh waktu lama bagi kami untuk mengatasi masalah ini. PR di atas harus memperbaikinya.

Masalah ini telah dikunci secara otomatis karena tidak ada aktivitas.
Ajukan masalah baru jika Anda mengalami masalah yang serupa atau terkait.

Baca lebih lanjut tentang kebijakan penguncian percakapan otomatis kami.

_Tindakan ini telah dilakukan secara otomatis oleh bot._

Apakah halaman ini membantu?
0 / 5 - 0 peringkat