title: Angular filter doesn't update when service property changes
body: <p>Perhaps this is a fundamental misunderstanding of Angular scope, but here goes.</p>
  
  <p>I have a service that handles changing a language preference:</p>
  
  <p><strong>languageService.js</strong></p>
  
  <pre><code>function languageService() {
    var language = "en";
  
    var service = {
      getLanguage: getLanguage,
      setLanguage: setLanguage
  
    };
  
    function getLanguage () {
      return language;
    }
  
    function setLanguage (newLang) {
     language = newLang;
    }
  
    return service;
  }
  </code></pre>
  
  <p>I also have a filter that formats something:</p>
  
  <p><strong>someFilter.js</strong></p>
  
  <pre><code>function myFilter(languageService) {
    return function(num) {
      var french = languageService.getLanguage() === 'fr';
  
      if (french) {
        return "is french!"
      } else {
        return "is other."
      }
    }      
  }
  </code></pre>
  
  <p>I try to use this filter in some HTML: <code>Blah blah {{ 'test' | someFilter }}</code>.</p>
  
  <p>It works, but only on load; if I call <code>setLanguage('en')</code>, the binding doesn't change.</p>