【问题标题】:Angular file-saver unknown providerAngular 文件保护程序未知提供者
【发布时间】:2019-05-16 11:49:47
【问题描述】:

我用 angular-file-saver 安装了

bower install angular-file-saver

然后我在 bower.json 文件中添加了依赖项:

{
  "name": "app",
  "version": "0.0.0",
  "dependencies": {
    "angular": "^1.4.0",
    "bootstrap": "^3.2.0",
    "file-saver.js": "^1.20150507.2"
  },
  "devDependencies": {
    "angular-mocks": "^1.4.0"
  },
  "appPath": "app",
  "moduleName": "app",
  "overrides": {
    "bootstrap": {
      "main": [
        "less/bootstrap.less",
        "dist/css/bootstrap.css",
        "dist/js/bootstrap.js"
      ]
    }
  }
}

file-saver.js 中的 bower.json 是

{
  "name": "file-saver.js",
  "main": "FileSaver.js",
  "version": "1.20150507.2",
  "homepage": "https://github.com/Teleborder/FileSaver.js",
  "authors": [
    "Eli Grey (http://eligrey.com)"
  ],
  "description": "A saveAs() FileSaver implementation",
  "keywords": [
    "File",
    "FileSaver",
    "saveAs"
  ],
  "license": "LICENSE.md",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests",
    "demo",
    "FileSaver.min.js"
  ]
}

然后我将它导入到我的控制器中:

controller('MainCtrl', ['$http', 'file-saver.js', function ($http, fs) {  

但我得到了错误:

Error: "[$injector:unpr] Unknown provider: file-saver.jsProvider <- file-saver.js <- MainCtrl
https://errors.angularjs.org/1.7.8/$injector/unpr?p0=file-saver.jsProvider%20%3C-%20file-saver.js%20%3C-%20MainCtrl"

我尝试了其他名称,例如 file-saver、FileSaver、FileSaver.js,但没有任何效果。

【问题讨论】:

    标签: javascript angularjs bower


    【解决方案1】:

    文档说你需要在你的模块中导入ngFileSaver模块,然后在你的组件中注入FileSaver。这是提供的示例:

    angular
      .module('fileSaverExample', ['ngFileSaver'])
      .controller('ExampleCtrl', ['FileSaver', 'Blob', ExampleCtrl]);
    

    之后就可以调用FileSaver.saveAs方法了。

    【讨论】:

    • 现在我 [$injector:modulerr] 无法实例化模块 ngFileSaver,原因是:[$injector:nomod] 模块 'ngFileSaver' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
    • 您是否已将文件保护程序模块 js 文件添加到您的 index.html 文件中?或者你是如何使用 bower 来注入依赖的?
    • Bower 自动将“”添加到我的 index.html 文件中。
    • 哦,当您安装 angular-file-saver 时,您的 bower.json 文件包含 file-saver.js。替换它,它应该可以工作
    • 我什至没有看到有两个文件夹,我太笨了。非常感谢。
    猜你喜欢
    • 2012-09-02
    • 2017-04-16
    • 2017-10-08
    • 2017-08-26
    • 2013-04-20
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多