title: Backbone.js model trigger change only if model.on called again
body: <p>It's my first post here so please be nice ;) I'm trying to create a Backbone+requireJS sample app and I have stumbled upon a strange problem. In my views initialize function I bind to models change event by</p>
  
  <pre><code>this.model.on("change", this.change());
  </code></pre>
  
  <p>Event is triggered correctly when data is loaded and all is fine. In my view I also bind to a click event. On click I try to change one of the properties and I was hoping for a change event, but it never came.</p>
  
  <p>I was trying some stuff recommended here on stackoverflow (<a href="https://stackoverflow.com/questions/9909799/backbone-js-change-not-firing-on-model-changene-js-change-not-firing-on-model-change">here</a>, <a href="https://stackoverflow.com/questions/6513020/backbone-js-change-event-not-firing">here</a>, <a href="https://stackoverflow.com/questions/15959737/trigger-backbone-js-change-when-value-doesnt-change">and there</a>) but with no luck.</p>
  
  <p>In my guts I feel it has to do with event binding. When I tried to bind again to models on change event inside click callback it started to work. So now I sit here and I'm, hm, confused. Could someone shed some light on this issue?</p>
  
  <p>My View:</p>
  
  <pre><code>define(
  [
    'jquery',
    'underscore',
    'backbone',
    'text!templates/news/newsListItem.html'
   ],
   function($, _, Backbone, newsListItemTemplate)
   {
      var NewsListItemViewModel = Backbone.View.extend({
          tagName: 'li',
          events: {
              "click a" : "onLinkClick"
          },
          initialize: function(){
              this.model.on("change", this.changed());
          },
          render: function()
          {
              this.$el.html(_.template(newsListItemTemplate, this.model.toJSON()));
          },
          changed: function()
          {
              this.render();
              console.log("changed");
          },
          //GUI functions
          onLinkClick: function(e)
          {
              console.log("click!");
              this.model.toggle();
              this.model.on("change", this.changed());
  
          }
  
      });
  
      var init = function(config){
          return new NewsListItemViewModel(config);
      }
  
      return {
          init : init
      }
   }
  </code></pre>
  
  <p>);</p>
  
  <p>My Model:</p>
  
  <pre><code>define(
  ['jquery', 'underscore', 'backbone'],
  function($, _, Backbone){
  
      var NewsListItemModel = Backbone.Model.extend({
          toggle: function() {
              this.set('done', !this.get('done'));
              this.trigger('change', this);
          }
      });
  
      var init = function(data)
      {
          return new NewsListItemModel(data);
      }
  
      return {
          init: init,
          getClass: NewsListItemModel
      };
  }
  </code></pre>
  
  <p>);</p>
  
  <p>Thanks for any input :)</p>