【问题标题】:AngularJs dependency not workingAngularJs依赖不起作用
【发布时间】:2016-03-29 12:29:53
【问题描述】:

我刚刚用 bower 安装了以下软件包:

https://github.com/urish/angular-spinner

包添加成功。我还添加了:

<script src="bower_components/spin.js/spin.js"></script>
<script src="bower_components/angular-spinner/angular-spinner.js"></script>

当我尝试像这样注入它时:

(function()
{
    angular.module('employeeApp',['angularSpinner']).controller('schoolController', schoolController);

它崩溃了,我收到了错误:

Argument 'indexController' is not a function, got undefined

当我删除 ['angularSpinner'] 时,一切都恢复正常。

我该怎么办?

--编辑--

索引控制器

angular.module('employeeApp').controller('indexController', indexController);

function indexController($location, authenticationFactory,constants)
{
    var vm = this;

    vm.setName = function()
    {
        return constants.firstname;
    }
}

【问题讨论】:

  • 什么是 indexController?
  • 有些地方引用了控制器错误,能分享下indexController的代码吗?
  • 是的,还需要更多代码,(function() { 会导致什么?需要之前和之后的代码
  • 模块在某处被定义了两次
  • 谢谢大家!我声明了两次。

标签: angularjs


【解决方案1】:

在 Angular 中,您为您的应用程序创建模块,并在那里指定依赖项。一旦你创建了控制器或服务,你就可以通过名称获取模块并在该模块中创建控制器\服务。

//create module for app
 angular.module('employeeApp', [ /*add your dependencies here*/ ]);

//create controller\ service 
angular.module('employeeApp').controller(function(){
   //controller implementation
 });

可能发生的情况是您可能会错误地重新初始化您的应用程序。

【讨论】:

    【解决方案2】:

    为简化起见,您可以将 Angular 模块存储在一个变量中,如下所示:

    var app = angular.module('employeeApp', ['angularSpinner']);
    

    并像这样定义一个控制器:

    app.controller('indexController',function(angularSpinner){
       //controller code here
    });
    

    【讨论】:

      猜你喜欢
      • 2015-11-10
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多