AngularJS-工厂-类型错误: Cannot read property 'getSpec' of undefined

标签 angularjs angularjs-factory

我从 AngularJS 开始,在尝试从 Controller 使用工厂时遇到一些问题。

我有以下工厂

angular.module('testingApp')
  .factory('factoryService', function ($http) {
    // Service logic
    var getSpec = function(p) {
      return $http.get('http://someurl//?p=' + p);
    };
    return {
      getSpec: getSpec  
    };
  });

然后我尝试从 Controller 中使用它,如下所示

angular.module('testingApp')
  .controller('ServiceincientsCtrl',[ function (factoryService,$scope) {
   console.log('Starting Service Incident Controller');
    factoryService.getSpec('AAA').then(function(response){
        $scope.result = response.data;
    }, function(error){
        console.log('opsssss' + error);
    });

  }]);

但是当我尝试运行它时,我收到以下消息

TypeError: Cannot read property 'getSpec' of undefined

我不知道我错过了什么,这应该是一个新手错误,我用谷歌搜索它并尝试了很多示例,但结果相同。

对我做错了什么有什么想法吗?

谢谢!

最佳答案

看起来您没有正确使用依赖数组表示法。请引用下面的代码。请将“factoryService”和“$scope”添加为数组项。

.controller('ServiceincientsCtrl', ['factoryService', '$scope', function(factoryService, $scope) {
    console.log('Starting Service Incident Controller');
    factoryService.getSpec('AAA').then(function(response) {
        $scope.result = response.data;
    }, function(error) {
        console.log('opsssss' + error);
    });

}]);

关于 dependancy injection 的 Angular 文档.

关于AngularJS-工厂-类型错误: Cannot read property 'getSpec' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281734/

相关文章:

unit-testing - Jasmine 网站上的 Angular 测试教程不起作用

javascript - AngularJS 中自动完成指令的问题

angularjs - 运行功能和位置路径问题

javascript - 如何在 Angular JS 中执行 switch 或 else/if 语句?

angularjs - 在 Protractor 测试中使用工厂

javascript - angularjs 指令 : how communicate between link and controller?

javascript - 如何在 AngularJS 中提取和发送具有多个不同模型的数据

javascript - 绑定(bind)到 Controller 范围的工厂中的修改数据,它不会更新

javascript - AngularJS : How to return a reusable object from a factory?

javascript - Angular 工厂中的变量范围