角js未知提供商

我试图“定制”mongolab示例以适合我自己的REST API。 现在我遇到了这个错误,我不知道我在做什么错误:

Error: Unknown provider: ProductProvider <- Product
    at Error (unknown source)
    at http://localhost:3000/js/vendor/angular.min.js:28:395
    at Object.c [as get] (http://localhost:3000/js/vendor/angular.min.js:26:180)
    at http://localhost:3000/js/vendor/angular.min.js:28:476
    at c (http://localhost:3000/js/vendor/angular.min.js:26:180)
    at d (http://localhost:3000/js/vendor/angular.min.js:26:314)

这是我的控制器:

function ProductListCtrl($scope, Product) {
  $scope.products = Product.query();
}

这是模块:

angular.module('productServices', ['ngResource']).
    factory('Product', ['$resource', function($resource){
      var Product = $resource('/api/products/:id', {  }, {
        update: { method: 'PUT' }
      });

      return Product;
    }]);

你的代码看起来不错,实际上它可以工作(除了调用本身之外),当它被复制并粘贴到示例jsFiddle中时:http://jsfiddle.net/VGaWD/

很难说没有看到更完整的例子会发生什么,但我希望上面的jsFiddle会有所帮助。 我怀疑的是你没有使用'productServices'模块初始化你的应用程序 。 它会给出同样的错误,我们可以在另一个jsFiddle中看到这个:http://jsfiddle.net/a69nX/1/

如果你打算使用AngularJS和MongoLab, 我会建议使用现有的适配器作为$ resource和MongoLab :https://github.com/pkozlowski-opensource/angularjs-mongolab它减轻了使用MongoLab的很多痛苦,你可以在这里看到它的行动:http://jsfiddle.net/pkozlowski_opensource/DP4Rh/免责声明! 我维护这个适配器(基于AngularJS示例编写),所以我明显偏向这里。


我得到了这个错误,因为我传递了一个不正确的参数给工厂定义。 我有:

myModule.factory('myService', function($scope, $http)...

它在我删除了$scope并将工厂定义更改为:

myModule.factory('myService', function( $http)...

如果您需要注入$scope ,请使用:

myModule.factory('myService', function($rootScope, $http)...

我只是有一个类似的问题。 这个错误在问题中说的是相同的,试图用pkozlowski.opensource和Ben G的答案来解决它,这两个答案都是正确的和很好的答案。

我的问题确实与以下相同的错误不同:

在我的HTML代码中,我有这样的初始化...

<html ng-app>

更进一步,我试图做这样的事情:

<div id="cartView" ng-app="myApp" ng-controller="CartCtrl">

我摆脱了第一个...然后它的工作......显然你不能初始化ng-app两次或更多次。 很公平。

我总是忘记了第一个“ng-app”,并感到非常沮丧。 也许这会帮助别人...

链接地址: http://www.djcxy.com/p/2177.html

上一篇: angular js unknown provider

下一篇: Creating common controller functions