我关注此示例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代码工作完美。
可以弃用此代码吗?
答案 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'];
我希望它对你有用!