Я использую VS Code v1.12.1 и Angular Language Service v0.1.3 с проектом Ionic 3, и я получаю эти предупреждения, несмотря на то, что все в порядке ...
Я только что увидел это с помощью Angular Language Service и VS Code 1.13. происходит в Heroes Tutorial при добавлении метода (save ()) в hero-detail-component.html
Код работает нормально, но показывает красные волнистые линии, хотя метод явно присутствует.
@bkbonner Я не могу воспроизвести это с помощью https://angular.io/generated/zips/toh-pt6/toh-pt6.zip. У вас есть модификация, которая показывает эту проблему.
Я могу попробовать отправить свою кодовую базу. Позвольте мне посмотреть, есть ли что-то еще в вас, что позволяет этому работать.
Привет @chuckjaz . Поэтому, если я изменю файл .ts и удалю метод save (), а затем перейду к соответствующему файлу html и изменю вызов имени метода в файле html, он это подчеркнет. Если я добавлю метод обратно на сторону .ts и вернусь к файлу .html, волнистая линия останется, пока я не нажму ctrl + пробел и не выберу один из вариантов метода в раскрывающемся списке.
Я не уверен, так ли он вел себя раньше, но, возможно, именно то, как запускается проверка существования метода, вызывает запутанный результат.
Я включил видео, чтобы показать, как это выглядит: https://youtu.be/UjfFprgvTQg без звука, но я добавил закрытые субтитры, чтобы описать это.
У меня такая же проблема ...
У меня такая же проблема с использованием .bind в шаблоне.
Это работает, но мы получаем ошибки.
+1 такая же проблема здесь
Есть еще какое-нибудь решение?
+1 здесь тоже!
+1 точно такая же проблема. Любые обновления?
Та же ошибка с .bind(this)
здесь.
Подтверждено, что все еще происходит в VS Code с языковым сервисом angular. Ионный 3, Угловой 5.
Также происходит с hasError в расширении 0.1.9 в VS Code 1.24.1:
<div *ngIf="form.get('phone').hasError(validation.type)">
жалуется, что hasError не является функцией, хотя это так (в классе AbstractControl форм Angular).
Изменить: хотя это можно исправить, добавив "!" таким образом:
<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#disables-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 code 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 с тех пор много обновлялись, и я давно не видел этого предупреждения ...
Да, это все еще проблема.
Код 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
Попробуйте поставить; 18 февраля 2019 г. в 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 это не работает.
Да, это все еще проблема.
Код 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
Здесь та же проблема: - / Любое решение?
+1 с угловым 7 дисплеем с на мат-автозаполнением
Работает нормально, но предупреждения
@multilexus прав, я работаю с Angular 7 в VS code 1.31.1
Это все еще проблема. Что новенького?
То же происходит и со мной.
[myFun]="myService.myFunc.bind(myService)"
напишите так : -
[myFun] = 'handleFun'
--- в htmlthis.handleFun = this.myService.myFunc.bind (myService);
--in ts файл
Да, это все еще проблема.
Код 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 (это, язык);
--in ts файл
+1 с угловым 7 дисплеем с на мат-автозаполнением
Работает нормально, но предупреждения
напишите так : -
[displayWith] = 'displayFun'
--- в html
this.displayFun = this.displayFun.bind (это);
--in ts файл
Обнаружена эта ошибка при использовании метода $any()
в <ng-template>
в Angular 7.
Все еще жалуется на 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
function создает новую функцию при каждом вызове. Таким образом, вы будете создавать новую функцию при каждом обнаружении изменений. лучше назначить стрелочную функцию свойству класса:
Машинопись
myMethod = (param1: any, param2: any) => {
// логика метода
}
```html
<MyComponent [myInput]="myMethod">
@ andrius-pra Хорошая идея, я сейчас воспользуюсь этим, спасибо.
Извините всех, что нам потребовалось так много времени, чтобы решить эту проблему. Приведенный выше PR должен исправить это.
Эта проблема была автоматически заблокирована из-за бездействия.
Сообщите о новой проблеме, если вы столкнулись с аналогичной или связанной проблемой.
Узнайте больше о нашей политике автоматической блокировки разговоров .
_Это действие было выполнено автоматически ботом. _
Самый полезный комментарий
У меня такая же проблема в Angular 6.
[displayWith]="displayFn.bind(this)"
Все работает нормально и при запуске ошибок не вижу, только в редакторе: