Ohm Karma Colección Cuentas - tiempo infinito

Karma impacto infinita Esta semana comienza la cuarta versión del Karma en curso por la recolección de los granos de Ohm y es la primera cuelgan en la serie que se dio a conocer. La colección Karma ha sido liberado de uno en uno los jueves desde la primera encanto era el 8 de mayo, con cada perla que representa un Chakra específico en hindú y enseñanzas tántricas. He estado disfrutando de esta versión incremental especial y los diseños únicos que salen hasta ahora!

Este encanto, llamado Tiempo Infinito, significa la tercera chakra que es responsable de una&# 8217; s sentido de la autoestima y la confianza. Este chakra es a veces llamado el chakra del plexo solar y se encuentra en su espina dorsal cerca del ombligo. Bloqueos y la obstrucción de este punto la energía vital se cree que manifestarse como sentimientos de vergüenza, la vergüenza y la propia conciencia.

Tiempo Infinito combina dos símbolos que unen de nuevo a este chakra, siendo el primero la cáscara del nautilus en espiral en el cuelgue. El shell de Nautilus se hace referencia en el mito hindú y es considerado un símbolo para la vida y la belleza interior, con ella&# 8217; s forma en espiral que representa el ciclo infinito de la existencia. Estar en sintonía con su tercera Chakra significa entender lo que eres y donde perteneces en el camino en espiral de la vida. La parte posterior de la carcasa está grabado con los números de la cara de reloj, lo que refuerza la metáfora y la adición de un detalle agradable a la parte trasera del encanto.

El segundo símbolo es la base del talón rosario del encanto &# 8211; Ohm ha señalado que está diseñado para parecerse a las cuentas del mala que se utilizan en el budismo y el hinduismo. granos de rezo del mala jap vida real tienen 108 cuentas (108 es un número especial en ambas religiones), pero sería un poco difícil para adaptarse a todos los de este pequeño encanto! Me gusta mucho este elemento de diseño adicional y disfrutar de cómo se vincula de nuevo a la idea original Chakra. El detalle de Tiempo Infinito está bien hecho y típico de Ohm&estilo s, con grabados nítidas profundas en la parte frontal y la parte posterior de la carcasa y una base bien esculpido; # 8217.

Tiempo Infinito, así como las versiones anteriores de la colección Karma por Ohm, están disponibles en línea, tanto en Perlen y directa desde el sitio web de Cuentas Ohm. Ohm cuentas son totalmente compatibles con las principales marcas, incluyendo pulsera de Pandora. yo&# 8217; m deseando ver cómo Ohm redondea esta colección y representa los chakras restantes en las próximas semanas; ¿Qué piensan ustedes, señoras?


Prueba de la unidad de desplazamiento infinito en la interfaz de usuario de la red con el Karma y Jasmine

Mi mandato fue crear algunos componentes angulares comunes para su uso en toda la organización. Uno de estos componentes fue una cuadrícula. Esta rejilla necesita sostener 100&# 8217; s de miles de artículos y debe ser compatible con scroll infinito. Elegí a abstraer la verdadera aplicación de rejilla (ui-grid) y colocarlo detrás de mi propia directiva personalizada (mi conexión a la red).

Quería utilizar Karma y Jasmine escribir algunas pruebas unitarias para la red. Resulta que que no era&# 8217; t del todo intuitiva. Este puesto de relieve algunos de los desafíos que encontré y cómo los superó.

Software utilizado en el momento de escribir este artículo

  • 1.4.1 angular
  • ui-grid 3.0.1
  • karma 0.13.3
  • 2.3.4 jazmín

El margen de beneficio es bastante simple, pero hay un par de cosas a tener en cuenta:

  • La bandera de actualización. Esto es para combatir este problema: https://github.com/angular-ui/ng-grid/issues/3770
  • El div interior es para mostrar un mensaje especial cuando no hay elementos para mostrar.

yo&# 8217; m mostrando sólo una pequeña fracción de la configuración de cuadrícula. La clave aquí es que getItems se llama en el interior de onRegisterApi. Observe también que para obtener los elementos de la cuadrícula, estamos obtenerlos de forma asíncrona de un servicio genérico que obtiene inyectado. No estoy mostrando cómo se configuran columnas o cualquier otra cosa de esa manera, sólo las cosas clave que necesita para obtener un trabajo de prueba de unidad.

Hay comentarios en el código que señalan los puntos problemáticos. Es decir, al obtener los datos de forma asíncrona, que estaba teniendo problemas con grid.rows estar siempre vacía. Resulta que necesitaba para envolver la promesa&# 8217; s método de determinación de un tiempo de espera. Esto permite que la instancia de interfaz de usuario de la red subyacente para hacer lo que tiene que hacer con el fin de añadir los datos a la red.

Si tu&# 8217; he escrito nunca una prueba angular con un tiempo de espera antes, entonces usted&# 8217; notará el uso de $ timeout.flush () que se requiere con el fin de vaciar la cola de funciones diferidos.

El primer número me encontré con desplazamiento infinito era cómo simular el movimiento en sentido vertical. El truco aquí ISN&# 8217; t para forzar el puerto de vista para desplazarse o cualquier cosa de lujo así. En realidad, todo lo que tiene que hacer es obligar a la API de desplazamiento infinito para obtener los datos. aquí&# 8217; s un ejemplo:

Nota: Es necesario establecer grid.infiniteScroll.direction a la dirección que usted está planeando en el desplazamiento antes de levantar los eventos de desplazamiento. Si tu no&# 8217; t hacer esto, la API de desplazamiento infinita&# 8217; s método adjustScroll ganó&# 8217; t correctamente resolver promesas y cualquier código que ha que se basa en la promesa de conseguir gridApi.infiniteScroll.dataLoaded resolución (es decir, para gestionar la estructura de datos interna) ganó&# 8217; t ser llamado. Esto hará que la red se comporte de manera diferente en las pruebas de que en una situación de la vida real, que ISN&# 8217; t buena.

Esto es especialmente útil si se está controlando la cantidad de artículos que pueden ser retenidos en la memoria en el lado del cliente. El uso de este modelo simple le permitirá crear pruebas complejas que simulan el desplazamiento del usuario. Leer más arriba para eso tengo que hacer una timeout.flush $ () después de cada obtención de información. Esencialmente, sin haber aclarado las deferreds, mis datos en realidad nunca lo hace de nuevo a la API de la red, por lo que básicamente se compromete mis datos a la red.

Sería aconsejable encapsular parte de este código duplicado en un par de funciones para aumentar la legibilidad. Por ejemplo:

Nota: Algunas de las pruebas en torno desplazamiento infinito es altamente dependiente de la implementación dentro de la API de desplazamiento infinito. Con suerte lo que&# 8217; he señalado anteriormente sigue trabajando, pero será importante que se asegure sus pruebas están funcionando como se esperaba se debe utilizar una versión diferente de la interfaz de usuario de la red.