AngularJS混淆

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

有什么方法可以解决这个问题吗?

编辑

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);
}
1个回答

7

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

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

此外,“controllerComm” 是否已定义?

那么,我应该通过 app.controller('AventosController',[...] 来定义控制器,而不是像这样定义:function AventosController (..){..}?目前我是用第一种方式定义的。 - Ronnie
是的,controllerComm已经定义。我会在我的帖子中更新它。 - Ronnie
啊,我明白了。我按照你说的方式设置了控制器,但仍然出现错误。我对我的 controllerComm 做了同样的操作,问题解决了!非常感谢。 - Ronnie
是的,我会这样定义我的控制器,无论是否在缩小代码时解决了您的问题,我不确定;但它有助于将所有内容保持在一起,以便更易于阅读和理解正在发生的事情。此外,我通常为我的控制器、过滤器、指令和服务创建单独的模块,然后将它们注入到主应用程序模块中。 - m.e.conroy
@Ronnie,欢迎,很高兴我能帮助你找到解决问题的方法。 - m.e.conroy
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接