meteor iron-router

Meteor v 1.0 y Hierro: Router



iron-router (1)

Hubo un cambio no compatible con versiones anteriores en la versión más reciente de Iron Router. La guía de migración dice:

onRun y onBeforeAction ahora requieren que llames a this.next() , y ya no tomes un argumento de pause() . Así que el comportamiento por defecto se invierte. Por ejemplo, si tuvieras:

Router.onBeforeAction(function(pause) { if (! Meteor.userId()) { this.render(''login''); pause(); } });

Tendrás que actualizarlo a

Router.onBeforeAction(function() { if (! Meteor.userId()) { this.render(''login''); } else { this.next(); } });

Más información

En su caso, la solución de by-the-book sería agregar this.next() al final de onBeforeAction . Sin embargo, deberías usar waitOn :

waitOn: function () { return Meteor.subscribe("userData"); }

De esa manera, puede establecer una loadingTemplate que aparecerá mientras se carga la suscripción de datos de userData .

¿Alguien más está recibiendo el siguiente error de Iron-Router desde la actualización de Meteor a la versión 1.0?

Por favor, publique aquí si sabe cómo resolver este problema.

Despacho de ruta nunca rendido. ¿Olvidó llamar a this.next() en una onBeforeAction ?

Router.map(function () { Router.route(''profileShow'', { waitOn: function () { if (Meteor.user()) { Meteor.subscribe(''userData''); } else { this.next(); } }, data: function () { if (Meteor.user()) { return {profile: Meteor.user().profile}; } } }); });