J'ai un problème avec mon application AngularJS 2 (j'utilise la version RC5 d'AngularJS 2). Il semble qu'une URL aseptisée déclenche une détection de changement qui met ensuite à jour le fichier div
ci-dessous alors que l'état de mon composant n'a pas changé.
Du point de vue de l'utilisateur, cela se manifeste par le rechargement de la vidéo en cours de lecture.
Donc, dans ma vue des composants, j'ai :
<div *ngIf="isVideo(item)">
<iframe [src]="getTrustedYouTubeUrl(item)" scrolling="no" frameborder="0" allowfullscreen></iframe>
</div>
L'implémentation de la fonction ci-dessus dans le code du composant est la suivante :
getTrustedYouTubeUrl(linkedVideo:LinkedVideoModel) {
return this.sanitizer.bypassSecurityTrustResourceUrl(linkedVideo.video.url);
}
Dans le débogueur, je vois que la division est rafraîchie assez souvent, par quelque chose déclenché dans le cadre d'AngularJS 2.
Le problème disparaît si je remplace l'extrait HTML ci-dessus par une URL codée en dur :
<div *ngIf="isVideo(item)">
<iframe src="<hardcoded youtube url here>" scrolling="no" frameborder="0" allowfullscreen></iframe>
</div>
Je soupçonne donc que la désinfection des URL en est la cause.
Quelqu'un peut-il m'indiquer la bonne direction ? Un exemple fonctionnel de vidéos YouTube intégrées dont l'URL est liée à une propriété du composant, par exemple ?