Hola,
Descubrí un error en el que si carga una página desplazada hasta la mitad (frente a la parte superior), Node da un error de "TypeError: No se puede leer la propiedad 'toLowerCase' de undefined". Esto no parece romper el complemento, ya que continúa con la carga diferida, sin embargo, el nuevo evento de salida onLoad parece no activarse correctamente hasta que vuelve a desplazarse hacia la parte superior.
Cómo volver a crear: cargue su página de prueba como de costumbre, en la parte superior. Desplácese hacia abajo hasta que esté a mitad de camino. Ahora actualice la página y comience a desplazarse desde el medio. Debería ver un error de nodo. Si no es así, asegúrese de que está utilizando el evento de salida onLoad. Si se desplaza hasta la parte superior, debería ver que el evento onLoad comienza a funcionar de repente.
Hola,
No puedo reproducir esto: /
Cuando dices "Carga tu página de prueba como de costumbre". ¿Te refieres a esta página: https://tjoskar.github.io/ng-lazyload-image o ejecutas la página localmente con npm start
?
¿Qué navegador estás usando?
Por alguna razón en github.io no puedo actualizar la página después de cargarla una vez. Dice 404 no encontrado siempre :(
Pero en general, me refiero a nivel local con cualquier proyecto: estoy usando Angular 4 con Universal y Node (por lo que universal podría tener algo que ver con esto). Usando Chrome 59 para Windows 10. Creo que esto podría ser un error con la nueva funcionalidad onLoad pero no positivo. El error solo aparece en la consola de Node, no parece que surja ningún error en la consola de Chrome.
Hola @elitenick ,
¿Puede dar un seguimiento completo del error?
@tjoskar
Creo que el error está relacionado con https://github.com/tjoskar/ng-lazyload-image/blob/master/src/lazyload-image.ts#L75 , antes aquí se detectará el error, pero ya que no lo es.
En Angular Universal aquí https://github.com/tjoskar/ng-lazyload-image/blob/master/src/lazyload-image.ts#L47 produciendo un error, porque element
en el servidor no está definido.
Creo que una solución bastante buena del problema es deshabilitar la imagen perezosa en el lado del servidor.
Por alguna razón en github.io no puedo actualizar la página después de cargarla una vez. Dice 404 no encontrado siempre :(
Sí, eso es porque github no admite redirigir todas las solicitudes a index.html (pero ese es un problema completamente diferente)
Probablemente tenga algo que ver con Angular Universal, pero hay algunas cosas que no entiendo:
element
no puede ser indefinido porque estamos accediendo a nodeName
desde element
sin ningún error y, además, estamos usando element
en isVisible () e incluso estamos usando window
en esa función, que debería estar indefinida en un contexto de servidor.Creo que esto podría ser un error con la nueva funcionalidad onLoad pero no positivo
¿Está usando (onLoad)
? ¿Puede intentar eliminarlo y ver si puede reproducir el error?
@rimlin
Creo que una solución bastante buena del problema es deshabilitar la imagen perezosa en el lado del servidor.
Sí, no tiene ningún sentido cargar imágenes de forma diferida en el servidor (ya que no sabemos nada sobre el tamaño de la pantalla).
Tal vez podamos agregar if (isPlatformServer(this.platformId)) return;
( ref ) en ngAfterContentInit
.
@elitenick , acabo de publicar [email protected]
con @rimlin pull request. ¿Puedes instalarlo ( npm install [email protected]
) y ver si resuelve el problema?
¡Con seguridad! ¡Lo comprobaré hoy y te lo haré saber! Gracias chicos.
¡Está arreglado! ¡¡Gracias una tonelada!! Recreé mi mismo escenario varias veces y no más errores de nodo. Y la carga diferida continúa funcionando una vez que Angular se activa.
Incluido en [email protected]
.
Comentario más útil
https://github.com/tjoskar/ng-lazyload-image/pull/179