title: What are viewproviders in Angular? And what is the difference b/w providers vs viewproviders?
body: <p>What is viewProviders in the below code? And how it differs from providers?</p>
  
  <pre class="lang-ts prettyprint-override"><code>class Greeter {
     greet(name:string) {
       return 'Hello ' + name + '!';
     }
  }    
  @Component({
    selector: 'greet',
    viewProviders: [
      Greeter
    ],
    template: `&lt;needs-greeter&gt;&lt;/needs-greeter&gt;`    
  })
  class HelloWorld {
  }
  </code></pre>