【问题标题】:$resource error even after adding dependency to ngResource即使在将依赖项添加到 ngResource 之后,$resource 也会出错
【发布时间】:2016-10-01 14:21:55
【问题描述】:

我正在尝试使用来自 mongolab 的 $resource 在 Angular 应用程序中显示数据。我在模块中添加了对 ngResource 的依赖。仍然显示未知提供者。这里缺少什么?

'$resource 未定义'

注意:当我的工厂名称不正确时,我收到错误:Unknown provider: employeesProvider

代码

<html>
<head>

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js"></script>

<script type="text/javascript">

 //defining module
 var app = angular.module('myApp', ['ngResource']);

 //defining factory
 app.factory('employees', function () {

    return $resource('https://api.mlab.com/api/1/databases/humanresource/collections/Employees',
                    {apiKey: 'removedmykeyforpostinginSO'}
                  );
 });

 //defining controller
 app.controller('myController', function ($scope, employees) 
 {
    $scope.countries = employees.query();
 });  

</script>
</head>

<body ng-app="myApp">
     <div ng-controller="myController">
    <ul>
        <li ng-repeat = "objCountry in countries" >
            {{objCountry.name}}

        </li>
    </ul>
     </div>
</body>
</html>

来自 Mongolab 的 JSON

[ { "_id" : { "$oid" : "57044f95e4b0427faa38585f"} , "name" : "Lijo" , "age" : "30"} ]

【问题讨论】:

  • employees 定义在哪里?
  • @Lijo 你正在注入employeesemployees 的实现在哪里?你能提供那个代码吗?
  • employees 更改为myFactory 或将'myFactory' 更改为'employees'。您还需要将$resource 注入到您的工厂函数中,即app.factory('employees', function($resource) { ... })。投票结束是一个错字
  • 另外,Angular 1.0.7...哇
  • 查看上面的更新评论

标签: angularjs ngresource angularjs-ng-resource


【解决方案1】:

来自AngulaJS Documentation,推荐的工厂声明方式是:

angular.module('myModule', [])
.factory('serviceId', ['depService', function(depService) {
  // ...
}])

我通过注入 $resource 更正了我的工厂代码如下:

app.factory('employees', function ($resource) {

    return $resource('https://api.mlab.com/api/1/databases/humanresource/collections/Employees',
                    {apiKey: 'jJbAltZ26vuIrgzUQetXh480JM0q9k6p'}
                  );
 });

参考资料:

  1. $resource
  2. Tidy Up Your Angular Controllers with Factories and Services
  3. Angular: Passing data back to my controller from a factory ajax call
  4. Binding variables from Service/Factory to Controllers
  5. Angular passing data from factory to controller

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-14
    • 2021-03-11
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多