J'ai créé un composant mat-dialog pour déclencher la réponse http. Lorsque j'inclus une instruction ngIf dans le html pour le dialogue mat, elle n'est pas gérée. Sur la console, il affiche un avertissement comme suit.
Impossible de se lier à 'ngIf' car ce n'est pas une propriété connue de 'div'.
NgIf fonctionne très bien dans tous les autres composants du projet.
Appel de mat-dialog dans un fichier dactylographié.
<div *ngIf="true"><p>Show this only if "show" is true</p></div>
code html
this.matDialog.open(PaymentModelComponent, { width: "630px", data: { message: response.comment }, autoFocus: false, height: "630px", });
Pourquoi ng-if ne fonctionne pas dans une boîte de dialogue mat?
3 Réponses :
Je publie ceci en espérant que quelqu'un le trouvera utile. Ce n'est pas la réponse exacte à ce problème, mais c'est ainsi que je surmonte mon scénario. Dans mon cas, j'utilisais le composant mat-dialog comme composant d'entrée dans app.module.ts
@NgModule({ declarations: [ UserAccountInfoReloadPopupDialogComponent ],
Pour une raison quelconque, ng-si cela ne fonctionne pas dans la boîte de dialogue. Ce n'est pas seulement pour ng-if, tous les autres comme ng-for n'étaient pas disponibles.
J'ai résolu le problème en définissant les deux composants dans le même fichier ts.
@Component({ selector: "app-account-info", templateUrl: "./account-info.component.html", styleUrls: ["./account-info.component.css"], }) export class AccountInfoComponent implements OnInit { //code } @Component({ selector: "user-account-info-reload-popup-dialog", templateUrl: "./payment-modal.component.html", styleUrls: ["./payment-modal.component.css"], }) export class UserAccountInfoReloadPopupDialogComponent implements OnInit { //code }
Tout ce que vous avez à faire est d'ajouter les boîtes de dialogue à vos importations et déclarations de module. Dans le même module où le composant dans lequel vos dialogues sont déclarés est déclaré.
Tout ce que j'avais à faire était d'ajouter le DialogComponent aux déclarations du module:
declarations: [..., MyDialogComponent]
Pas besoin d'avoir le code du composant dans le même fichier.
Est-ce que cela répond à votre question? Impossible de se lier à «ngIf» car ce n'est pas une propriété connue de "div"
Non, ça n'a pas marché. Je l'ai essayé plus tôt.
Êtes-vous sûr que votre composant modal est dans le bon module? Et qu'il importe
BrowserModule
/CommonModule
?Je ne suis pas sûr d'avoir bien compris le commentaire précédent. Je suis un peu nouveau en angular. BrowserModule et CommonModule sont utilisés comme importations dans le fichier app.module.ts. J'ai utilisé MyDialogModel comme entryComponents. C'est OK?
Bonjour, avez-vous trouvé la solution? Parce que j'ai le même cas avec toi. Merci...
J'ai trouvé la raison, je la posterai comme réponse