web-dev-qa-db-fra.com

"let-" n'est supporté que par les éléments ng-template

J'essaie de faire fonctionner mon application frontale (Angular5.1.x) mais elle s'est arrêtée à cause d'une erreur d'analyse du modèle:

"let-" is only supported on ng-template elements. ("
</thead>
<tbody>
<template ngFor [ngForOf]="rows" [ERROR ->]let-rowz="$implicit" let-    index="index">
<tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].sec"):     
ng:///DatepickerModule/DayPickerComponent.html@52:58
    at syntaxError (compiler.js:485)
    at TemplateParser.parse (compiler.js:24633)
    at JitCompiler._parseTemplate (compiler.js:34442)
    at JitCompiler._compileTemplate (compiler.js:34417)
    at compiler.js:34318
    at Set.forEach (<anonymous>)
    at JitCompiler._compileComponents (compiler.js:34318)
    at compiler.js:34188
    at Object.then (compiler.js:474)
    at JitCompiler._compileModuleAndComponents (compiler.js:34187)

J'ai pensé que je devais suivre ce problème à la rubrique, déclarant que je devais utiliser ngx-bootrap @ ngx-bootstrap @ 2.0.0-beta.8, mais cela ne fonctionnait pas avec cela ou la v.2.0.0-rc.0

https://github.com/valor-software/ngx-bootstrap/issues/3024

... toute aide est appréciée

8
Leif Walder

il n'y a pas de balises <template> dans la v2 +, veuillez installer proprement, .__ et vérifiez que vous avez bien ngx-bootstrap v2 + vérifiez le verrouillage du paquet s'il est présent.

5
valorkin

J'ai rencontré cette erreur lors de la mise à niveau d'angular 4.x.x vers 5.x.x. Le code original était:

<template let-item>

</template>

Cela fonctionnait bien dans Angular 4, mais échouait dans 5. Utiliser simplement ng-template fonctionnait correctement (aucune installation de package n'était requise, aucun nettoyage de cache requis):

<ng-template let-item>

</ng-template>
5
Alexei

ngx-bootstrap 1.x.x utilisant <template> qui est déconseillé dans angular 5.x.x. il faut donc passer à ngx-bootstrap 2.X.X

Faire pour mettre à jour

npm uninstall --save ngx-bootstrap
npm cache clean -f
npm install --save ngx-bootstrap
3
Kalim ul Haq

Il suffit de chercher tous 

  1. <template et remplacer par <ng-template

  2. </template> et remplacer par </ng-template>

0
lilhamad

Il faisait également face au même problème. par le problème constaté que le tableau que j'ai créé était 

<ng-template  ngFor [ngForOf]="names" let-name="$implicit" let-i="index">
  <div><span>{{i+1}}</span> <span> {{name.name}}</span></div>
</ng-template>

comme :- 

names= [{id:1,name:'shashikant'},{id:2,name:'Rakesh'},{id:3,name:'Umesh'}];

alors je remplace par: -

names:Array<any>= [{id:1,name:'shashikant'},{id:2,name:'Rakesh'},{id:3,name:'Umesh'}];

a spécifié le type à Array

0
Shashikant Pandit