尽管console.log,工厂仍未定义

时间:2015-10-13 05:46:26

标签: 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)
          .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');
                    });

  }

}])

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

  

ReferenceError:未定义EditarBsnFct       在Scope。$ scope.actualizar(http://localhost:8100/js/Controllers/bsnsDashboardEditarCtrl.js:26:5)       在fn(eval at(http://localhost:8100/lib/ionic/js/ionic.bundle.js:21972:15),   :4:221)       在http://localhost:8100/lib/ionic/js/ionic.bundle.js:57514:9       在Scope.parent。$ get.Scope。$ eval(http://localhost:8100/lib/ionic/js/ionic.bundle.js:24673:28)       在Scope.parent。$ get.Scope。$ apply(http://localhost:8100/lib/ionic/js/ionic.bundle.js:24772:23)       在HTMLButtonElement。 (http://localhost:8100/lib/ionic/js/ionic.bundle.js:57513:13)       在HTMLButtonElement.eventHandler(http://localhost:8100/lib/ionic/js/ionic.bundle.js:12098:21)       在triggerMouseEvent(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2865:7)       在tapClick(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2854:3)       在HTMLDocument.tapMouseUp(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2927:5

我不知道它是什么,所以希望有人可以帮助我。

非常感谢...

2 个答案:

答案 0 :(得分:2)

您正在注射EditarBsn s Fct(注意s)但尝试将其引用为EditarBsnFct

答案 1 :(得分:0)

由于您的工厂是在与控制器模块不同的模块中定义的。

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

类似的东西:

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