Vscode-ng-language-service: طريقة غير معروفة ربط

تم إنشاؤها على ٩ مايو ٢٠١٧  ·  41تعليقات  ·  مصدر: angular/vscode-ng-language-service

أنا أستخدم VS Code v1.12.1 و Angular Language Service v0.1.3 مع مشروع Ionic 3 ، وأتلقى هذه التحذيرات ، على الرغم من أن كل شيء يسير على ما يرام ...

bug

التعليق الأكثر فائدة

لدي نفس المشكلة في Angular 6.

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

كل شيء يعمل بشكل جيد ولا أرى أي أخطاء أثناء التشغيل ، فقط في المحرر:

[زاوية] طريقة غير معروفة "ربط"

ال 41 كومينتر

لقد رأيت هذا للتو مع Angular Language Service و VS Code 1.13. يحدث في Heroes Tutorial عند إضافة طريقة (save ()) إلى hero-details-component.html

يعمل الكود بشكل جيد ، لكنه يظهر خطوطًا متعرجة حمراء على الرغم من وجود الطريقة بوضوح.

bkbonner لا يمكنني إعادة إنتاج هذا باستخدام https://angular.io/generated/zips/toh-pt6/toh-pt6.zip هل لديك تعديل على هذا يوضح هذه المشكلة.

يمكنني محاولة إرسال قاعدة بياناتي. اسمحوا لي أن أرى ما إذا كان هناك شيء آخر مختلف في أنا الذي يتيح له العمل.

مرحبا chuckjaz . لذلك إذا ذهبت وقمت بتعديل ملف .ts وقمت بإزالة طريقة الحفظ () ثم انتقلت إلى ملف html المقابل وقمت بتعديل استدعاء اسم الأسلوب في ملف html ، فإنه يقوم بتسطيره. إذا أضفت الطريقة مرة أخرى على جانب .ts ، وعدت إلى ملف .html ، فسيظل الخط المتعرج حتى أقوم بالنقر فوق ctrl + space وتحديد أحد خيارات الطريقة في القائمة المنسدلة.

لست متأكدًا مما إذا كانت هذه هي الطريقة التي كان يتصرف بها من قبل ، ولكن ربما تكون الطريقة التي يتم بها التحقق من صحة الطريقة هي التي تسبب في النتيجة المربكة.

لقد قمت بتضمين مقطع فيديو لإظهار كيف يبدو: https://youtu.be/UjfFprgvTQg لا يوجد صوت ، لكني قمت بتضمين تسميات توضيحية مغلقة لوصفه.

أواجه نفس المشكلة أيضًا ...

لدي نفس المشكلة باستخدام ربط في قالب.

إنه يعمل ولكن لدينا أخطاء.

+1 نفس المشكلة هنا

أي حل بعد؟

+1 هنا أيضًا!

+1 نفس المشكلة بالضبط. أي تحديثات؟

نفس الخطأ مع .bind(this) هنا.

تم التأكيد على استمرار حدوثه في VS Code مع خدمة اللغة الزاوية. أيوني 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 تُرجع _or_ AbstractControl. أفترض أن خدمة اللغة تشكو من أن "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#disopped-type-checking-using-any)

السابق)

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

نفس المشكلة هنا Ionic3 Angular5

حصلت على نفس الخطأ في الرمز VS v1.25.1 + Angular v6.0.1

حصلت على نفس الخطأ في رمز VS 1.25.1

الإصدار: 1.25.1
الالتزام: 1dfc5e557209371715f655691b1235b6b26a06be
التاريخ: 2018-07-11 T15: 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)"

كل شيء يعمل بشكل جيد ولا أرى أي أخطاء أثناء التشغيل ، فقط في المحرر:

[زاوية] طريقة غير معروفة "ربط"

نفس الشيء حصل لي.

[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

حاول أن تضع ؛ بعد ذلك ، في 18 فبراير 2019 الساعة 5:09 صباحًا ، كتب Rafael [email protected] : نعم ، لا تزال هذه مشكلة.

VS كود حول:
الإصدار: 1.31.1
الالتزام: 1b8e8302e405050205e69b59abb3559592bb9e60
التاريخ: 2019-02-12 T02: 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 عام

- أنت تتلقى هذا لأنك علّقت. قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على 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

نفس المشكلة هنا: - / أي حل؟

+1 مع شاشة 7 زاويّة مع ميزة الإكمال التلقائي على حصيرة
image

يعمل بشكل جيد ولكن التحذيرات

multilexus صحيح أنا أعمل مع Angular 7 في VS code 1.31.1

لا تزال مشكلة. أى اخبار؟

نفس الشيء حصل لي.

[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 (هذه ، اللغة) ؛
- في ملف ts

+1 مع شاشة 7 زاويّة مع ميزة الإكمال التلقائي على حصيرة
image

يعمل بشكل جيد ولكن التحذيرات

اكتب مثل هذا: -
[displayWith] = 'displayFun'
--- في html

this.displayFun = this.displayFun.bind (هذا) ؛
- في ملف 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 الوظيفة بإنشاء وظيفة جديدة في كل مكالمة. لذلك ستنشئ وظيفة جديدة عند اكتشاف كل تغيير. من الأفضل تعيين وظيفة السهم لخاصية الفئة:

تحميل
myMethod = (param1: any، param2: any) => {
// منطق الأسلوب
}

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

@ andrius-pra فكرة جميلة ، سأستخدمها الآن ، شكرًا.

آسف للجميع لأن الأمر استغرق وقتًا طويلاً حتى نعالج هذه المشكلة. يجب على العلاقات العامة أعلاه إصلاحها.

تم قفل هذه المشكلة تلقائيًا بسبب عدم النشاط.
يرجى تقديم مشكلة جديدة إذا كنت تواجه مشكلة مشابهة أو ذات صلة.

اقرأ المزيد حول سياسة قفل المحادثة التلقائي .

_تم تنفيذ هذا الإجراء تلقائيًا بواسطة روبوت.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات