【问题标题】:Using an AngularJS factory and controller gives undefined error使用 AngularJS 工厂和控制器会产生未定义的错误
【发布时间】:2016-04-25 16:48:01
【问题描述】:

我在 AngularJS 中有一个非常基本的工厂和控制器,取自 Stack Overflow 上的另一篇文章

var app = angular.module( 'testapp', [] );
app.factory('commonService', function ($scope) {
  var obj= {};
  obj.func = function () {
    console.log('route 1');
  }
  obj.func1 = function () {
    console.log('route 2');
  }
  return obj;
});
app.controller('FirstController', function ($scope, commonService) { 
  console.log('route 1' + commonService.func());  
});
app.controller('SecondController', function ($scope, commonService) { 
  console.log('route 2' + commonService.func1());  
});

由于某种原因,这一直给我错误 Unknown provider: $scopeProvider

我正在尝试使用工厂来清理我的代码并重用控制器中的某些功能;我尝试过使用服务并获得了相同的结果。

【问题讨论】:

  • “FirstController”在哪里被调用?
  • 我有一个非常基本的 HTML 文件
  • @nrdb Here 是一个有效的 JSFiddle。
  • 好的,在用控制器名称修复错字后,我得到一个不同的错误:未知提供者:$scopeProvider
  • @IgorRaush 感谢您的提琴,我不再遇到错误,我可以看到 console.log() 但它认为工厂中的两个函数是未定义的

标签: angularjs angularjs-scope angular-controller


【解决方案1】:

问题是您将 $scope 注入工厂,但它无法访问您的 $scope。此外,将 $scope 传递到您的工厂也没有多大意义。看看this.

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多