title: Use $compileProvider to avoid unsafe links
body: <p>I have no trouble injecting things like $scope and $location and $routeProvider, why is $compileProvider different?</p>
  
  <p>Based on <a href="https://stackoverflow.com/a/15637622/1272965">this answer</a>, I understand that I have to instruct angular to not prefix certain links (sms in my case), but I can't apply the answer in my project.  It says I should add this:</p>
  
  <pre><code>angular.module('myModule', [], function ($compileProvider) {
      $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
  });
  </code></pre>
  
  <p>But the chrome console says:</p>
  
  <blockquote>
    <p>"angular.js:68 Uncaught Error: [$injector:unpr] Unknown provider:
    $compileProviderProvider &lt;- $compileProvider"</p>
  </blockquote>
  
  <p>That "provider-provider" thing made me think that the real name of the service is just $compile (and that angular is tacking on the "provider" suffix:</p>
  
  <pre><code>angular.module('myModule', [], function ($compile) {
      $compile.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
  });
  </code></pre>
  
  <p>But then, predictably, I guess, I get:</p>
  
  <blockquote>
    <p>angular.js:13550 TypeError: $compile.aHrefSanitizationWhitelist is not a function </p>
  </blockquote>