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 に答える