Vscode-ng-language-service: [Angular] 未定义标识符“必需”。 '__type' 不包含这样的成员

创建于 2017-08-28  ·  22评论  ·  资料来源: angular/vscode-ng-language-service

AbstractControlDirective 的属性错误

我有以下代码:

<div>
    <label for="fullname">Passenger name:</label>
    <input
      type="text"
      name="fullname"
      required
      #fullname="ngModel"
      [ngModel]="detail?.fullname">

      <div class="error" *ngIf="fullname.errors?.required && fullname.dirty">
        Passenger name is required.
      </div>
  </div>

通过在 ngModel 引用的errors属性中使用一个属性,它向我显示了该错误。
这不应该是一个错误,因为它是模板驱动表单的有效语法。

最有用的评论

这将解决问题:
只需使用 !! :


乘客姓名为必填项。

所有22条评论

关闭,因为重复 #149

我已经尝试过上述方法,但它失败了。

请看这段代码——

此字段是必需的
          <div *ngIf="username.errors.minlength">Minimum length should be {{username.errors.minlength.requiredLength}}</div>

TS 编译器抛出错误 -
[Angular] 未定义标识符“必需”。 '__type' 不包含这样的成员

我尝试了同样的事情,但没有退出

例子
尝试添加“?” 在“价格”之后。

价格为必填项。

名字是必需的。
名字应至少为 3 个字符。

名字与模式不匹配。


我试过这个

<div *ngIf="firstName.errors.required">First Name is required. <div *ngIf="firstName.errors.minlength">First Name should be minimum 3 character.</div> <div *ngIf="firstName.errors.pattern">First Name doesn't Match pattern.</div> </div> i tried this

这将解决问题:
只需使用 !! :


乘客姓名为必填项。

例子
尝试添加“?” 在“价格”之后。

价格是必需的。”

我解决了这个问题添加? 在参数之前而不是在错误之后? 但是您能否详细说明并尝试通过移动问号来解释这个问题是如何解决的? @丹妮拉帕罗娜

这将解决问题:
只需使用 !! :


乘客姓名为必填项。

这解决了我的问题! 谢谢!

例子
尝试添加“?” 在“价格”之后。

价格是必需的。”

它对我有用。 你能告诉我为什么要加“?”

这也解决了我的问题,只需添加?

但是无论是转换为布尔值还是使用 ?( 可能没有) 都不能解决智能感知无法找到 _errors_ 属性的事实。

试试价格['错误']['需要']

@EeeEui ? (安全导航操作符)将采用一个变量,即使它可能无效并在内部处理异常(在这种情况下无效 = false)。

?对我不起作用。 !!仅适用于我的情况。

? 没有工作 f. !! 仅适用于 angular 7+。

<div class="alert alert-danger" *ngIf="username.touched && username.invalid" class="alert alert-danger">
            <div *ngIf="!!username.errors.required">Username is required</div>
            <div *ngIf="!!username.errors.minlength">Username Should be minimum {{ !!username.errors.minlength.requiredLength }} Charecters.</div>
          </div>

现在看来 VSCode 有问题,因为错误仍然在我的编辑器中突出显示,但 Angular 没有检测到它。 我为 VSCode 解决此问题所做的是使用函数检查 TypeScript 端的错误。

HTML

html

打字稿

ts

这对我有用,看起来更干净。
<div class="error" *ngIf="fullname.hasError('required')">
即使我们处理自定义验证,例如fullname.hasError('invalidName')这种方式也很有用

我有同样的错误。 做*ngIf="formGroup?.get('fullName').hasError('required')"对我有用

现在看来 VSCode 有问题,因为错误仍然在我的编辑器中突出显示,但 Angular 没有检测到它。 我为 VSCode 解决此问题所做的是使用函数检查 TypeScript 端的错误。

HTML

html

打字稿

ts

大哥,这对你来说太麻烦了。

做 *ngIf="yourForm.get('yourfield').hasError('required')"

由于不活动,此问题已自动锁定。
如果您遇到类似或相关的问题,请提交新问题。

阅读有关我们的自动对话锁定政策的更多信息。

_此操作已由机器人自动执行。_

此页面是否有帮助?
0 / 5 - 0 等级