Angularjs 工厂未定义,尽管存在console.log

Angularjs 工厂未定义,尽管存在console.log,angularjs,dependency-injection,ionic,factory,Angularjs,Dependency Injection,Ionic,Factory,我真的不知道它是什么,我很绝望为什么工厂被注入和记录。。。调用函数后未定义。 我在做一个爱奥尼亚项目,所以 这是我的工厂: angular.module('starter.services') .factory( 'EditarBsnsFct', ['$http', function($http){ var editarBsns = {}; editarBsns.editarBsns = function(url,datos){ $http.post(url, datos)

我真的不知道它是什么,我很绝望为什么工厂被注入和记录。。。调用函数后未定义。 我在做一个爱奥尼亚项目,所以

这是我的工厂:

angular.module('starter.services')
.factory( 'EditarBsnsFct', ['$http', function($http){
  var editarBsns = {};

  editarBsns.editarBsns = function(url,datos){
    $http.post(url, datos)
          .success(function(data, status){
            return data;
          });
  }

  return editarBsns;

}]);
和我的控制器:

angular.module('starter.controllers')

.controller('BsnsDashboardEditarCtrl', ['$scope', '$http', '$state', 'EditarBsnsFct', function($scope, $http, $state, EditarBsnsFct){
  $scope.bsns = {};
  $scope.bsns.tags = [];
  $scope.placeholder = 'Etiqueta tu negocio (cheve, rock, dj...)';

  var usuario = JSON.parse( localStorage.getItem('user') );

  $scope.loadTags = function($query){

    return $http.get('http://hoppers.dev/getTags', {cache:true})
                .then( function( res ){
                  var tags = res.data.data;
                  return tags.filter(function(tag) {
                    return tag.nombre.toLowerCase().indexOf($query.toLowerCase()) != -1;
                  });
                });
  }

  $scope.actualizar = function(){
    var url = 'http://hoppers.dev/dashBsns/actualizar/' + usuario.id;
    var datos = JSON.stringify($scope.bsns);

    EditarBsnFct.editarBsns(url, datos)
                    .success( function(){
                       $state.go('dashNegocio.perfil');
                    })
                    .error( function( err ){
                      alert('error');
                    });

  }

}])
因此,当我在视图中单击Realizar函数时,它会给出错误:

ReferenceError:未定义EditarBsnFct 在范围内。$Scope.zar 在fn评估时, :4:221 在 在Scope.parent.$get.Scope.$eval处 在Scope.parent.$get.Scope.$apply处 在HTMLButtoneElement。 在HtmlButtoneElement.eventHandler 在三角洲事件中 点击 在HTMLDocument.tapMouseUp

我不知道是什么,希望有人能帮我


非常感谢…

因为您的工厂定义在一个与控制器模块不同的模块中

定义控制器模块时,需要将工厂模块作为依赖项注入,以帮助控制器识别在另一个模块中定义的工厂

比如:

angular.module('starter.controller',['starter.services'])

您正在注入EditarBsnFct请注意,但是尝试将其引用为EditarBsnFct

服务被注入主应用程序中,因为代码结构将视图、控制器、服务等分离。我必须为每个模块定义一个主模块…所以这已经包括在内了…错误消失了。。。但是现在越来越。。。无法读取未定义的属性…读取堆栈跟踪和错误消息。如果您被卡住了,那么接受这个答案,然后用固定的代码和新的错误和堆栈跟踪询问另一个问题。