2015-10-13 42 views
-1

我真的不知道它是什么,我越来越绝望为什么工厂尽管是注入和控制台记录...调用函数后未定义。 我在一个离子项目,所以......工厂是undefined尽管console.log

继承人我厂:

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 is not defined at Scope.$scope.actualizar (http://localhost:8100/js/Controllers/bsnsDashboardEditarCtrl.js:26:5) at fn (eval at (http://localhost:8100/lib/ionic/js/ionic.bundle.js:21972:15), :4:221) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:57514:9 at Scope.parent.$get.Scope.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.js:24673:28) at Scope.parent.$get.Scope.$apply (http://localhost:8100/lib/ionic/js/ionic.bundle.js:24772:23) at HTMLButtonElement. (http://localhost:8100/lib/ionic/js/ionic.bundle.js:57513:13) at HTMLButtonElement.eventHandler (http://localhost:8100/lib/ionic/js/ionic.bundle.js:12098:21) at triggerMouseEvent (http://localhost:8100/lib/ionic/js/ionic.bundle.js:2865:7) at tapClick (http://localhost:8100/lib/ionic/js/ionic.bundle.js:2854:3) at HTMLDocument.tapMouseUp (http://localhost:8100/lib/ionic/js/ionic.bundle.js:2927:5)

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

非常感谢......

回答

0

当你的工厂的模块比你的控制器模块不同的定义。

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

类似:

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

服务注入的主要应用,因为代码结构分离的意见,控制器,服务..等等。我必须为每一个定义一个mainModule ...所以这已经包括了... –

2

您注射EditarBsn 小号 FCT(注意S),但尝试引用它作为EditarBsnFct

+0

以及错误消失了...但现在越来越...无法读取未定义的属性... –

+0

阅读堆栈跟踪和消息的错误。如果卡住了,接受这个答案,然后用固定代码和新的错误和堆栈跟踪问*另一个问题。 –