title: BackBoneJS Which one is the best approach ? fetch+success or bind on chage
body: <p>I have a Backbone app, I get data in BackBone View from back-end API, then call a function <code>render</code> to render the template with the data I got.</p>
  
  <p>I would like to know which one is the best practice to fetch and render, and why ?</p>
  
  <p>1- Use fetch and then call <code>render</code> on <code>success</code> :</p>
  
  <pre><code>define(
      ['models/object',
          'text!templates/home.html',
          'backbone'
      ],
      function(ObjectModel, HomeTemplate, Backbone) {
          var homeView = Backbone.View.extend({
  
              initialize: function(options) {
                  var self = this;
                  this.homeTemplate = _.template(HomeTemplate);
  
                  this.object = new ObjectModel({
                      id: &lt;ANY_ID&gt;
                  }); 
  
                  this.object.fetch({
                      success: function() {
                          self.render(self.object);
                      }
                  });
  
              },
              render: function(data) {
                  this.$el.html(this.homeTemplate);
                  console.log(data);
                  return this;
              },
  
          });
  
          return homeView;
  
      });
  </code></pre>
  
  <p>2- Bind the <code>objects</code> to <code>render</code> when they change:</p>
  
  <pre><code>define(
      ['models/object',
          'text!templates/home.html',
          'backbone'
      ],
      function(ObjectModel, HomeTemplate, Backbone) {
          var homeView = Backbone.View.extend({
              initialize: function(options) {
                  var self = this;
                  this.homeTemplate = _.template(HomeTemplate);
  
                  this.object = new ObjectModel({
                      id: &lt;ANY_ID&gt;
                  });
  
                  this.object.bind('change', this.render, this);
                  this.object.fetch()
  
              },
              render: function(data) {
                  this.$el.html(this.homeTemplate);
                  console.log(data);
                  return this;
              },
  
          });
  
          return homeView;
  
      });
  </code></pre>