javascript - get method on collection in backbone -


i'm using backbone method on collection in same file (router),in function works while in other function doesn't work.below function doesn't works

     var models = {};        var approuter = backbone.router.extend({      routes: {         "": "home",         "user/:id":"userdetails",         "settings":"settings",//mettere id dell utente loggato         "friends":"friends",         "mailbox":"mailbox",         "landscape":"landscape",         "gestione_richieste_amic":"gestione_richieste_amic"     },      friends: function(){      console.log("friend_router");      var self=this;       models.utenti = new usercollection();       models.utenti.fetch({       success: function(object) {      console.log(object);        var view=new friendsview({model:object});      self.changepage(view);       },      error: function(amici, error) {      }     });       console.log(models.utenti);     var cur_user=parse.user.current().id;      console.log(models.utenti.get(cur_user));<--undefined, don't works here     console.log(cur_user);           }   , 

the reason asynchronous nature of ajax (fetch method).

the line log console executed before collection fetched. see error.

1st option - resolving error moving log inside of success handler

friends: function () {          console.log("friend_router");          var self = this,              models.utenti = new usercollection();          models.utenti.fetch({              success: function (object) {                  console.log(object);                  var view = new friendsview({                      model: object                  });                  self.changepage(view);                  console.log(models.utenti);                  var cur_user = parse.user.current().id;                   console.log(models.utenti.get(cur_user));                 console.log(cur_user);               },              error: function (amici, error) {               }          });      }, 

2nd option - might take bind sync event on collection..

initialize: function () {      this.models.utenti = new usercollection();      this.listento(this.models.utenti, 'sync', this.logcollection);      _.bindall(this, 'logcollection');  },  logcollection: function () {      console.log(this.models.utenti);      var cur_user = parse.user.current().id;       console.log(this.models.utenti.get(cur_user));      console.log(cur_user);   },  friends: function () {      console.log("friend_router");      var self = this;      this.models.utenti.fetch({          success: function (object) {              console.log(object);              var view = new friendsview({                  model: object              });              self.changepage(view);          },          error: function (amici, error) {           }      });  }, 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -