2015-10-13 41 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

閱讀堆棧跟蹤和消息的錯誤。如果卡住了,接受這個答案,然後用固定代碼和新的錯誤和堆棧跟蹤問*另一個問題。 –