title: Backbone: Two Change Events on Model Save
body: <p>When I try to update a model in Backbone via <code>save</code> the change event on the model is fired twice.  Events are fired in this order.</p>
  
  <ol>
  <li>change </li>
  <li>request </li>
  <li>change </li>
  <li>sync</li>
  </ol>
  
  <p>However, if I pass <code>(wait: true)</code>, only the first <code>change</code> event is fired.</p>
  
  <p>Can anybody explain why this is happening, and how I can get <code>change</code> to only fire once without passing <code>(wait: true)</code>?</p>
  
  <p>Two change events:</p>
  
  <pre><code>    editItem: function() {
          this.model.save({
              name: "Howard the Duck"
          });
      }
  </code></pre>
  
  <p>One change event:</p>
  
  <pre><code>    editItem: function() {
          this.model.save({
              name: "Howard the Duck"
          }, (wait: true);
      }
  </code></pre>
  
  <p>Pseudo code:</p>
  
  <pre><code>App.Views.Item = Backbone.View.extend({
      initialize: function() {
          this.model.on("change", this.changing, this);
          this.model.on("request", this.requesting, this);
          this.model.on("sync", this.syncing, this);
      },
  
      events: {
          "click a": "editItem"
      },
  
      editItem: function() {
          this.model.save({
              name: "Howard the Duck"
          });
      }
  
      changing: function() {
          console.log("changing");
      },        
  
      requesting: function() {
          console.log("requesting");
      },
  
      syncing: function() {
          console.log("syncing");
      }
  });
  </code></pre>