我需要什么
我需要将从一个控制器中选择的值传递给另一个控制器
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
我需要将数据从控制器传递到另一个。
虽然我不明白为什么会产生这样的错误。
答案 0 :(得分:1)
$injector
无法解析所需的依赖关系,导致此错误
要解决此问题,请确保定义依赖关系并拼写正确。
我有两个猜测:
示例:
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,
我创建了另一个共享相同服务的控制器。