【问题标题】:Angular is still not recognising $resourceAngular 仍然无法识别 $resource
【发布时间】:2016-02-12 23:41:36
【问题描述】:

我在我的应用模块中注入 ngResource :

angular.module('confusionApp', ['ui.router', 'ngResource'])

,然后在我的服务中注入 $resource 依赖项:

angular.module('confusionApp')
    .constant('baseURL', 'http://localhost:3000/')
    .service('menuFactory', ['$resource', 'baseURL', function($resource, baseURL) {

我还将脚本包含在我的 index.html 文件中:

<script src="../bower_components/angular/angular.js"></script>
    <script src="../bower_components/angular-ui-router/release/angular-ui-router.js"></script>
    <script src="../bower_components/angular-resource/angular-resource.js"></script>
    <script src="scripts/app.js"></script>
    <script src="scripts/controllers.js"></script>
    <script src="scripts/services.js"></script>

我在我的机器上运行一个 json-server,每当 $resource 请求数据时,浏览器的 js 控制台无法识别 $resource 并显示此错误:

错误:[$injector:unpr] 未知提供者:$resourceProvider

请帮助或指向可以提供帮助的地方!

更新

我的 bower.json 依赖项:

"dependencies": {
"bootstrap": "~3.3.5",
"font-awesome": "~4.4.0",
"angular": "1.4.x",
"angular-route": "1.4.x",
"angular-resource": "1.4.x",
"angular-ui-router": "~0.2.17"
}

【问题讨论】:

  • 听起来很愚蠢,但文件真的安装了吗?您的代码没有任何问题,因此请检查以确保 ../bower_components/angular-resource/angular-resource.js 在您的浏览器中不是 404。如果发生这种情况,它将在您声明依赖关系的第一行死亡。
  • 是的,我就是这么想的......它会先 404ed 这个文件,然后可能会显示错误,但不是......我已经检查过...... . 如果有帮助,我会发布 bower.json ......因为我使用过 bower。
  • 一个无关紧要的问题:为什么你有一个服务,但你把它命名为 menuFactory?为什么不用 menuService?
  • 其实我之前把它定义为工厂……然后改成服务……只是没改名字……反正……这是个好建议...我会从下次@AbdulAhmad 开始确保这一点

标签: javascript angularjs ngresource


【解决方案1】:

原来是 angular 和 angular-resource 版本之间的冲突。我不知道它是如何安装的,因为我是通过 bower 安装的,虽然我确实在 bower.json 中明确提到了它的版本,但在安装时并没有让 bower 命令工具保存它。 我必须从 bower_components 中删除 angular-resource,并从 bower.json 中删除依赖项并使用 -S 标志重新安装 angular-resource。

【讨论】:

    猜你喜欢
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 2011-02-18
    相关资源
    最近更新 更多