在Angular中,如何将服务注入控制器?

时间:2015-09-25 01:55:07

标签: javascript angularjs

我这样做app.js

var app = angular.module('game', ['ngRoute']);

我这样做doorService.js

angular.module('game', [])
  .service('doorService', function() {
    this.drawDoors = function drawDoors() { 
      ....
    }
  })

最后,我的控制器看起来像这样:

angular.module('game', [])
  .controller('canvasCtrl', function($scope, doorService) {
    ....
  })

错误

Error:$injector:modulerr Module Error

Error: $injector:unpr Unknown Provider

3 个答案:

答案 0 :(得分:1)

问题是你是在重复重新声明同一个模块。

模块的getter没有依赖参数

// declare once
angular.module('game', [/* dependencies*/])

// use as getter for components
angular.module('game').controller(...

如果您计划缩小代码,还可以选择为控制器添加注入依赖项数组

答案 1 :(得分:1)

首先必须将依赖项注入.module():

 angular.module('game')
    .controller('canvasCtrl', ['scope','doorService',function($scope, doorService) {
   ....
   })]

答案 2 :(得分:1)

我相信您完成的代码应如下所示:

var_dump($_POST)

另外,因为你正在创建全局变量app,所以对angular.module('game')的所有后续调用都可以用app替换。