Vscode-ng-language-service: Método desconocido .bind

Creado en 9 may. 2017  ·  41Comentarios  ·  Fuente: angular/vscode-ng-language-service

Estoy usando VS Code v1.12.1 y Angular Language Service v0.1.3, con un proyecto Ionic 3, y recibo estas advertencias, a pesar de que todo está bien ...

bug

Comentario más útil

Tengo el mismo problema en Angular 6.

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

Todo funciona bien y no veo errores durante la ejecución, solo en el editor:

[Angular] Método desconocido 'bind'

Todos 41 comentarios

Acabo de ver esto con Angular Language Service y VS Code 1.13. ocurre en Heroes Tutorial al agregar el método (save ()) a hero-detail-component.html

El código funciona bien, pero muestra líneas onduladas rojas a pesar de que el método está claramente ahí.

@bkbonner No puedo reproducir esto con https://angular.io/generated/zips/toh-pt6/toh-pt6.zip ¿Tiene una modificación a esto que muestra este problema?

Puedo intentar enviar mi código base. Déjame ver si hay algo más diferente en tu yo que lo permita funcionar.

Hola @chuckjaz . Entonces, si voy y modifico el archivo .ts y elimino el método save () y luego voy al archivo html correspondiente y modifico la llamada al nombre del método en el archivo html, lo subraya. Si vuelvo a agregar el método en el lado .ts y vuelvo al archivo .html, la línea ondulada permanece hasta que hago clic en ctrl + espacio y selecciono una de las opciones del método en el menú desplegable.

No estoy seguro de si así se comportaba antes, pero tal vez sea la forma en que se activa la validación de la existencia del método lo que está causando el resultado confuso.

Incluí un video para mostrar cómo se ve: https://youtu.be/UjfFprgvTQg sin audio, pero incluí subtítulos para describirlo.

También estoy enfrentando el mismo problema ...

Tengo el mismo problema al usar .bind en una plantilla.

Funciona pero obtenemos errores.

+1 mismo problema aquí

¿Alguna solución todavía?

¡+1 aquí también!

+1 exactamente el mismo problema. ¿Alguna actualización?

El mismo error con .bind(this) aquí.

Confirmado que sigue sucediendo en VS Code con servicio de lenguaje angular. Iónico 3, angular 5.

También sucede con 'hasError' en la extensión 0.1.9 en VS Code 1.24.1:

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

se queja de que hasError no es una función, aunque lo es (en la clase AbstractControl de formas angulares).

Editar: aunque esto se puede solucionar agregando un "!" por lo tanto:
<div *ngIf="form.get('phone')!.hasError(validation.type)">

Eso es porque el método get devuelve AbstractControl _o_ null. Supongo que el servicio de idiomas se queja de que 'hasError' no es una función de 'null'. Sería más claro si el error fuera:
The expression might be null
como lo es para otras funciones, por ejemplo, <div *ngIf="form.get('phone').errors[validation.type]">
produce el error The expression might be null .

También sucede con $any() , que siempre debería existir (https://angular.io/guide/aot-compiler#disabling-type-checking-using-any)

ex)

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

El mismo problema aquí Ionic3 Angular5

Recibí el mismo error en VS Code v1.25.1 + Angular v6.0.1

Obtuve el mismo error en el código VS 1.25.1

Versión: 1.25.1
Confirmar: 1dfc5e557209371715f655691b1235b6b26a06be
Fecha: 2018-07-11T15: 40: 20.190Z
Electrón: 1.7.12
Cromo: 58.0.3029.110
Node.js: 7.9.0
V8: 5.8.283.38
Arquitectura: x64

Mismo error en Angular 5 y VS Code 1.26.0

Tengo el mismo problema en Angular 6.

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

Todo funciona bien y no veo errores durante la ejecución, solo en el editor:

[Angular] Método desconocido 'bind'

A mí me pasa lo mismo.

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

¿Hay alguna forma de evitar esta advertencia en lugar de que todos digan que tengo el mismo problema?

intente agregar un punto y coma después del nombre de la función como este


Botón de prueba

Esto parece eliminar la advertencia.

Honestamente, no tengo idea de si esto sigue siendo un problema.
VS Code y ALS se han actualizado mucho desde entonces, y no he visto esta advertencia en mucho tiempo ...

Sí, esto sigue siendo un problema.
image

VS Code Acerca de:

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

Trate de poner; El 18 de febrero de 2019 5:09 a.m., Rafael [email protected] escribió: Sí , esto sigue siendo un problema.

VS Code Acerca de:
Versión: 1.31.1
Confirmar: 1b8e8302e405050205e69b59abb3559592bb9e60
Fecha: 2019-02-12T02: 19: 29.629Z
Electrón: 3.1.2
Cromo: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
SO: Linux x64 4.15.0-45-genérico

—Está recibiendo esto porque comentó. Responda a este correo electrónico directamente, véalo en GitHub o silencia el hilo.

@multilexus esto no funciona.

Sí, esto sigue siendo un problema.
image

VS Code Acerca de:

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

El mismo problema aquí: - / ¿Alguna solución?

+1 con pantalla angular 7 Con en un tapete-autocompletar
image

Funciona bien pero con advertencias

@multilexus tiene razón, estoy trabajando con Angular 7 en el código VS 1.31.1

Sigue siendo un problema. ¿Hay noticias?

A mí me pasa lo mismo.

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

escribe así : -
[myFun] = 'handleFun'
--- en html

this.handleFun = this.myService.myFunc.bind (myService);
--en archivo ts

Sí, esto sigue siendo un problema.
image
VS Code Acerca de:

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

El mismo problema aquí: - / ¿Alguna solución?

escribe así : -
(clic) = 'handleFun'
--- en html

this.handleFun = this.setLanguage.bind (este, idioma);
--en archivo ts

+1 con pantalla angular 7 Con en un tapete-autocompletar
image

Funciona bien pero con advertencias

escribe así : -
[displayWith] = 'displayFun'
--- en html

this.displayFun = this.displayFun.bind (esto);
--en archivo ts

Encontré este error al usar el método $any() en <ng-template> en Angular 7.

Sigo quejándome por hasError en
<div *ngIf="form.get('phone').hasError(validation.type)">
VSCode 1.34.0
extensión 0.800.0

Hasta que lo solucionen, hay una solución alternativa (al menos por myMethod.bind(this) :

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

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

Hasta que lo solucionen, hay una solución alternativa (al menos por myMethod.bind(this) :

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

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

Es una mala idea usar la función bind dentro de la plantilla. bind crea una nueva función en cada llamada. Por tanto, creará una nueva función en cada detección de cambios. es mejor asignar la función de flecha a la propiedad de la clase:

mecanografiado
myMethod = (param1: cualquiera, param2: cualquiera) => {
// lógica del método
}

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

@ andrius-pra Buena idea, ahora usaré esto, gracias.

Lo siento a todos por haber tardado tanto en abordar este problema. El PR anterior debería arreglarlo.

Este problema se ha bloqueado automáticamente debido a la inactividad.
Por favor, presente un nuevo problema si se encuentra con un problema similar o relacionado.

Obtenga más información sobre nuestra política de bloqueo automático de conversaciones .

_Esta acción ha sido realizada automáticamente por un bot._

¿Fue útil esta página
0 / 5 - 0 calificaciones