2013-08-29 14 views
7

私はanglejsアプリを難読化しようとしており、それは壊れています。私はこれがフレームワークの問題であることを認識しており、$ injectメソッドでこれを修正しようとしています。AngularJS難読化

http://docs.angularjs.org/tutorial/step_05「分注に関する注意事項」を参照してください。これは、彼らは私が先に行って、そのように自分のアプリケーションに合わせて、それをしたYourController.$inject = ['$scope', '$http'];

を行うことをお勧め解決するには

AventosController.$inject = ['$scope','$http','$q','controllerComm']; 
VforumController.$inject = ['$scope','$http','$timeout','controllerComm']; 

まあ、それはまだ動作していません。私はコンソールに表示されるエラーは次のとおりです。

とにかく

Error: Unknown provider: cProvider <- c <- controllerComm

これを改善するために?

EDIT

controllerComm

app.factory('controllerComm', ['$rootScope', function($rootScope) 
{ 
    var showVforum = {}; 
    showVforum.result = false; 
    showVforum.prepBroadcast = function(val) 
    { 
    this.result = val; 
    this.broadcastVal(); 
    } 

    showVforum.broadcastVal = function() 
    { 
    $rootScope.$broadcast('toggleVforum') 
    } 
    return showVforum; 
}]); 

EDIT 2は、難読化

$scope.launchVforum = function() 
{ 
    $scope.installationVideo = ($scope.installationVideo) ? false : true; 
    controllerComm.prepBroadcast($scope.installationVideo); 
} 

答えて

7

後に動作していないコントローラ定義で注入してください。

app.controller('myCtrlr', ['$scope', '$http', '$q', 'controllerComm', function ($scope, $http, $q, controllerComm) { 
    ... 
}]); // end myCtrlr 

「controllerComm」も定義されていますか?

+0

したがって、 'function AventosController(..){..}'のようなコントローラを定義するのではなく、 'app.controller( 'AventosController'、[...]'を介して定義する必要がありますか?今すぐ – Ronnie

+0

とyes controllerCommが定義されています。私は投稿を – Ronnie

+0

に更新します。ああ、私はそれを取得しました。ありがとうございました。 – Ronnie