2014-12-02 34 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中刪除了文件保護程序,它工作