2016-09-18 105 views
0

我很难让自定义服务工作。angularJS:无法加载自定义服务?

我收到错误:

Error: [$injector:unpr] Unknown provider: trucosProvider <- trucos 

这里是我的代码:

服务声明:

var trucos = angular.module('trucos', []); 
trucos.factory('agregarSignoPorcentajeAFila', function(palabraClave,numeroDeColumnas) { 
    //numeroDeColumnas=# de columnas a la derecha de palabraClave 
    //que queremos afectar   
    var celdaCreci = $("td").filter(function() { 
     return $(this).text() == palabraClave; 
    }).closest("td").nextAll().slice(0, numeroDeColumnas); 

    for (var i=0; i<numeroDeColumnas; i++){ 
     $(celdaCreci[i]).html($(celdaCreci[i]).html().toString()+"%") 
    }    
}) 

这里是如何我加载它:

.controller('CM_ventasCombosDamaCtrl', function($scope, $state, cssInjector, $http, trucos) { 

以下是我如何使用它:

trucos.agregarSignoPorcentajeAFila('CRECI', 4); 
+0

你必须使用厂家名称,而不是模块名状的:* * .controller('CM_ventasCombosDamaCtrl',函数($ scope,$ state,cssInjector,$ http,agregarSignoPorcentajeAFila)** – NNR

+0

好的,我已经完成了,仍然没有运气。 当我想使用它时,我会说agregarSignoPorcentajeAFila('CRECI',4)还是trucos.agregarSignoPorcentajeAFila('CRECI',4)? – quelquecosa

回答

0

你必须注入工厂不是模块控制器,

controller('CM_ventasCombosDamaCtrl', function($scope, $state, cssInjector, $http, agregarSignoPorcentajeAFila) { 
} 
+0

当我想用它时,我会说agregarSignoPorcentajeAFila('CRECI',4)还是trucos.agregarSignoPorcentajeAFila('CRECI',4)? – quelquecosa

+0

按照你建议的方式注入 – quelquecosa

+0

@quelquecosa你已经排序了吗? – Sajeetharan

0

尝试这样的:

var myApp = angular.module("app", []); 

myApp.factory('MathService', function() { 
    var factory = {}; 
    factory.multiply = function(a, b) { 
     return a * b 
    } 
    return factory; 
}); 

myApp.controller('CalcController', function($scope, MathService) { 
    $scope.mult = function(a) { 
     $scope.result = MathService.multiply(a,a); 
    } 
});