Nella mia app Meteor I router backbone funzionano solo quando l'utente ha effettuato l'accesso (tramite il pacchetto account-base). È strano. Questo router funziona correttamente. La funzione showSaying()
non viene chiamata affatto quando l'utente non ha effettuato l'accesso.App Meteor - Il router backbone non viene chiamato
Di seguito è riportato il codice in client.js
all'interno della cartella client. Devo fare qualcosa con sessioni o auto-pubblicazione?
AphorismView = Backbone.View.extend({
el: "#aphorism-item",
initialize: function(){
_.bindAll(this, "render");
this.render();
},
render: function() {
this.$el.append("<p style='height:600px; background-color:blue;'>hi</p>");
}
});
// Creates a route to view the selected aphorism
var Aphorism = Backbone.Router.extend({
routes: {
"saying/:id": "showSaying"
},
showSaying: function (id) {
var aphorism_view = new AphorismView();
alert('Saying id ' + id + '.');
}
});
//establishes the router
appRouter = new Aphorism;
//Sets up backbone
Meteor.startup(function() {
filepicker.setKey("AerIOvsmAQRGaNdEv0judz");
filepicker.constructWidget(document.getElementById('attachment'));
Backbone.history.start({pushState: true});
});
Sospetto che questo abbia a che fare con la velocità di caricamento/ordine e che quando si effettua l'accesso, il caricamento richieda più tempo, portando ad appRouter pronto in tempo. Prova a inserire la dichiarazione di appRouter in Meteor.startup. – Rahul
provato questo Rahul - non ha funzionato – squeezemylime
Non ho ancora lavorato su Win8 Metro Apps, quindi non so se c'è una console di sviluppo disponibile come in Browser. Se c'è, invoco il 'appRouter = new Aphorism;' prima di 'Backbone.history.start ({pushState: true});' e assegna l'appRoute a una variabile globale per vedere se è inizializzata. – wowpatrick