服务提供商不在角度js工作

时间:2016-06-10 08:39:44

标签: javascript angularjs

我需要什么

js code

 var app = angular.module('myApp', []);
 app.service('productService', function() {
   var productList = [];

   var addProduct = function(newObj) {
     productList.push(newObj);
   };

   var getProducts = function(){
    return productList;
   };

   return {
     addProduct: addProduct,
     getProducts: getProducts
   };
 });




app.controller('parentController', function ($scope,productService) {
  $scope.change = function () {
    alert($scope.value);
  }
});

错误

error: [$injector:unpr] Unknown provider: productServiceProvider <- productService <- parentController 
  • 我需要将数据从控制器传递到另一个。

  • 虽然我不明白为什么会产生这样的错误。

2 个答案:

答案 0 :(得分:1)

$injector无法解析所需的依赖关系,导致此错误 要解决此问题,请确保定义依赖关系并拼写正确。

我有两个猜测:

  • 您修复了服务名称拼写错误,同时将代码复制到您的问题Fiddle 只需检查您的实际服务名称

  • 您重新声明angular.module Example

示例:

var app = angular.module('myApp', []);
app.service('productService', function() {
  return {};
});

app = angular.module('myApp', []); // <- module redeclared
app.controller('parentController', function ($scope,productService) {
  $scope.value = 'World'
});    

angular.module('myApp', [])在不知道之前声明的提供者的情况下创建新的模块实例 您可以使用angular.module('myApp')检索它以供后续使用。

答案 1 :(得分:-1)

您已在模块解除之前声明了服务。所以它没有添加到你的模块

按照以下步骤操作

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

然后创建控制器和服务

app.service('productService', function() { ....

app.controller('parentController', function ($scope,productService) {...

我更改了您的小提琴示例,请检查Link

我创建了另一个共享相同服务的控制器。