AngularJS错误:未知提供者:sharedServiceProvider< - sharedService

时间:2012-11-04 06:58:44

标签: controller communication angularjs

我关注此示例http://jsfiddle.net/simpulton/XqDxG/,也可以在此处找到http://youtu.be/1OALSkJGsRw

var myModule = angular.module('myModule', []);
myModule.factory('mySharedService', function($rootScope) {
var sharedService = {};

sharedService.message = '';

sharedService.prepForBroadcast = function(msg) {
    this.message = msg;
    this.broadcastItem();
};

sharedService.broadcastItem = function() {
    $rootScope.$broadcast('handleBroadcast');
};

return sharedService;
});

总是收到此消息后

  

错误:未知提供者:sharedServiceProvider< - sharedService

我只是复制了jsfiddle的代码。我很惊讶同样的错误。 疯狂,导致jsfiddle代码工作完美。

可以弃用此代码吗?

2 个答案:

答案 0 :(得分:5)

由于jsFiddle运行正常,只有在将代码移动到应用程序时才会出现问题,我认为问题出在应用程序初始化逻辑中。

您应该确保ng-app指令指定要使用的模块名称,例如:ng-app="myModule"。如果你查看&#34;信息&#34;在jsFiddle中你可以看到它的body标签配置如下:<body ng-app="myModule">

在任何情况下,您的问题都没有与任何不推荐使用的版本更改/框架功能相关联,我们可以轻松地将AngularJS更新到最新版本,并且运行得很好。这是更新的jsFiddle:http://jsfiddle.net/fRzAD/1/

答案 1 :(得分:0)

我有同样的错误,我的解决方案是将所有参数都放入注入。

function addPedidoController ($scope, $http, $location, $rootScope, sharedService) {
..
}

addPedidoController.$inject = ['$scope', '$http', '$location', '$rootScope', 'mySharedService'];

我希望它对你有用!