1

我按照这个例子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 代码工作得很好。

可能会弃用此代码吗?

4

2 回答 2

5

由于 jsFiddle 运行良好,并且仅当您将代码移动到应用程序中时才会出现问题,我认为问题出在应用程序初始化逻辑中。

您应该确保您的ng-app指令指定了您要使用的模块名称,例如:ng-app="myModule". 如果您检查 jsFiddle 中的“信息”面板,您可以看到它的 body 标签配置如下<body ng-app="myModule">

在任何情况下,您的问题都与任何版本更改/已弃用的框架功能无关,我们可以轻松地将 AngularJS 更新到最新版本并且它运行良好。这是更新的 jsFiddle:http: //jsfiddle.net/fRzAD/1/

于 2012-11-04T08:16:51.147 回答
0

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

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

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

我希望它对你有用!

于 2013-07-11T14:38:41.047 回答