7

我试图混淆我的 angularjs 应用程序并且它正在破坏。我知道这是框架的问题,他们试图通过 $inject 方法来解决它。

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

无论如何要解决这个问题?

编辑

控制器通讯

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;
}]);

编辑 2混淆后不起作用

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

1 回答 1

7

尝试在控制器定义处注入。

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

还定义了“controllerComm”吗?

于 2013-08-29T17:44:17.173 回答