Angular File Saver is an AngularJS service that leverages FileSaver.js and Blob.js to implement the HTML5 W3C saveAs() interface in browsers that do not natively support it
File dist/angular-file-saver.bundle.js contains all required dependencies and
grants access to both Blob.js and FileSaver.js polyfills via Blob and
SaveAs services.
# Using bower:
$ bower install angular-file-saver
# Using npm:
$ npm install angular-file-saver- Include ngFileSavermodule into your project;
- Pass both FileSaverandBlobservices as dependencies;
- Create a Blob object by
passing an array with data as the first argument and an object with set of options
as the second one: new Blob(['text'], { type: 'text/plain;charset=utf-8' });
- Invoke FileSaver.saveAswith the following arguments:- dataBlob: a Blob instance;
- filenameString: a custom filename (an extension is optional);
- disableAutoBOMBoolean: (optional) Disable automatically provided Unicode text encoding hints;
 
A core Angular factory.
Immediately starts saving a file
- Blob data: a Blob instance;
- String filename: a custom filename (an extension is optional);
- Boolean disableAutoBOM: (optional) Disable automatically provided Unicode text encoding hints;
An Angular factory that returns a Blob instance.
An Angular factory that returns a FileSaver.js polyfill.
JS
function ExampleCtrl(FileSaver, Blob) {
  var vm = this;
  vm.val = {
    text: 'Hey ho lets go!'
  };
  vm.download = function(text) {
    var data = new Blob([text], { type: 'text/plain;charset=utf-8' });
    FileSaver.saveAs(data, 'text.txt');
  };
}
angular
  .module('fileSaverExample', ['ngFileSaver'])
  .controller('ExampleCtrl', ['FileSaver', 'Blob', ExampleCtrl]);HTML
<div class="wrapper" ng-controller="ExampleCtrl as vm">
  <textarea
    ng-model="vm.val.text"
    name="textarea" rows="5" cols="20">
      Hey ho let's go!
  </textarea>
  <a href="" class="btn btn-dark btn-small" ng-click="vm.download(vm.val.text)">
    Download
  </a>
</div>MIT © Philipp Alferov