Vscode-ng-language-service: [Angular] O identificador 'obrigatório' não foi definido. '__type' não contém tal membro

Criado em 28 ago. 2017  ·  22Comentários  ·  Fonte: angular/vscode-ng-language-service

erros de propriedade de AbstractControlDirective

Eu tenho o seguinte código:

<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>

Usando uma propriedade dentro da propriedade errors da referência ngModel, ele me mostra esse erro.
Isso não deve ser um erro, pois é uma sintaxe válida para formulários orientados a modelos.

Comentários muito úteis

isso vai resolver o problema:
basta adicionar fundição ao bool usando !! :


O nome do passageiro é obrigatório.

Todos 22 comentários

Fechando porque duplicata de # 149

Eu tentei com a abordagem acima, mas falhou miseravelmente.

Por favor, olhe para este código -

Este campo é obrigatório
          <div *ngIf="username.errors.minlength">Minimum length should be {{username.errors.minlength.requiredLength}}</div>

Lançamento de erro pelo compilador TS -
[Angular] O identificador 'obrigatório' não foi definido. '__type' não contém tal membro

Eu tentei a mesma coisa, mas não consegui sair.

Exemplo
tente adicionar "?" após "preço".
"

O preço é obrigatório.
"

O primeiro nome é necessário.
O nome deve ter no mínimo 3 caracteres.

O nome não corresponde ao padrão.


eu tentei isso

<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

isso vai resolver o problema:
basta adicionar fundição ao bool usando !! :


O nome do passageiro é obrigatório.

Exemplo
tente adicionar "?" após "preço".
"

O preço é obrigatório. "

Resolvi este problema adicionando? antes do parâmetro e não depois dos erros? Mas você poderia elaborá-lo e tentar explicar como esse problema é resolvido apenas movendo o ponto de interrogação? @Danielapariona

isso vai resolver o problema:
basta adicionar fundição ao bool usando !! :


O nome do passageiro é obrigatório.

Isso resolveu meu problema! obrigado!

Exemplo
tente adicionar "?" após "preço".
"

O preço é obrigatório. "

Funcionou para mim Você poderia me dizer por que deveria adicionar "?"

isso também resolve meu problema é só adicionar?

Mas nem lançar como booleano ou usar o? (Pode não ter) não resolve o fato de que o intelliSense não consegue encontrar as propriedades de _errors_.

tente o preço ['erros'] ['obrigatório']

@EeeEui the? (operador de navegação segura) pegará uma variável mesmo se for inválida e lidará com a exceção internamente (inválido = falso neste caso).

? não funcionou para mim. !! só funcionou no meu caso.

? não funcionou f. !! só funcionou no 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>

Agora parece um problema com o VSCode, porque o erro ainda está destacado no meu editor, mas o Angular não o detecta como tal. O que fiz para resolver isso no VSCode foi verificar o erro no lado do TypeScript, com uma função.

HTML

html

TypeScript

ts

Isso funcionou para mim e parece mais limpo.
<div class="error" *ngIf="fullname.hasError('required')">
dessa forma é útil mesmo se lidarmos com a validação personalizada também, como fullname.hasError('invalidName')

Eu tive o mesmo erro. Fazer *ngIf="formGroup?.get('fullName').hasError('required')" funcionou para mim

Agora parece um problema com o VSCode, porque o erro ainda está destacado no meu editor, mas o Angular não o detecta como tal. O que fiz para resolver isso no VSCode foi verificar o erro no lado do TypeScript, com uma função.

HTML

html

TypeScript

ts

Big Brother, isso é muito problemático para você.

Faça * ngIf = "yourForm.get ('yourfield'). HasError ('required')"

Este problema foi bloqueado automaticamente devido à inatividade.
Registre um novo problema se você estiver encontrando um problema semelhante ou relacionado.

Leia mais sobre nossa política de bloqueio automático de conversas .

_Esta ação foi executada automaticamente por um bot._

Esta página foi útil?
0 / 5 - 0 avaliações