2014-12-02 86 views
1

我试图使用meanjs实现filesaver.js。但它不起作用。AngularJS - 如何将filesaver.js添加到meanjs库

是否有可能与meanjs一起使用?

我按照以下步骤操作。

1-通过女郎用命令安装filesaver文件上传后:

bower install file-saver --save 

2 - 我有包括参考fileSaver.js文件中的文件在我的应用程序布局页:配置\ ENV \所有。这样JS:

assets: { 
     lib: { 
      css: [ 
       'public/lib/bootstrap/dist/css/bootstrap.css', 
       'public/lib/bootstrap/dist/css/bootstrap-theme.css'    
      ], 
      js: [ 
       'public/lib/angular/angular.js', 
      'public/lib/file-saver/FileSaver.min.js', 
       'public/lib/file-saver/FileSaver.js', 
       ] 
      }, 

3-然后我包括filesaver如在我的角度应用的依赖关系,在该文件中:公共\ config.js,通过在该行的阵列的末尾添加“fileSaver”:

var applicationModuleVendorDependencies = ['ngResource', 'ngCookies', 'ngAnimate', 'ngTouch', 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ui.utils', 'fileSaver']; 

4-我试图从我的meanjs客户端控制器中使用以下代码导出到XL工作表。

$scope.export = function($event) { 
$event.preventDefault(); 
$event.stopPropagation(); 
var blob = new Blob([document.getElementById('exportable').innerHTM], { 
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' 
}); 
saveAs(blob, 'Report.xls'); 
}; 

我无法在我的视图中使用文件保护程序。它警告说'saveAs'没有定义。

谢谢。

+0

我会用纯javascript。使用MEAN并不意味着(不是双关语),你必须采用Angular的方式。我不是JS专家,但你不能只添加一个纯JS库,并假设你可以通过依赖注入来“导入”它。我建议你建立一个服务,把所有的纯JavaScript放在那里,代码放在“纯”JavaScript(fileSaver JS库)中,并返回由fileSaver执行的CRUD操作的结果。然后,您只需通过DI将您的服务连接到您的控制器,然后就可以了。 – 2014-12-02 13:55:34

回答

1

我从applicationModuleVendorDependencies中删除了文件保护程序,它工作