javascript - AngularJS - Controller 和工厂 - 我在包含/注入(inject)函数时哪里出错了?

标签 javascript angularjs dependency-injection angularjs-scope angularjs-service

我是 Angular 的新手,无法确定哪里出错了。我只是想简单地将我的工厂注入(inject)我的 Controller ,引用文献说:“无法读取未定义的属性‘validar’”。我有两个文件,ServiceUtil.js 有一个服务和 CentroCustoCtrl.js 我正在尝试使用服务的功能。

ServiceUtil.js 中的函数:

 (function () {
  'use strict';

  angular.module('Services', [])
  .service('ValidarFormulario', [function () {

      this.validar = function (form) {
          var valido = true;
         //code
          }
          return valido;
      }
  }]);

})();

和 CentroCustoCtrl.js

(function () {
 'use strict';

var app = angular.module("start", ['AxelSoft', 'ngLocalize',
       'ngLocalize.Config', 'mvComponentes','Services'])
       .value('localeConf', {
               basePath: '../Scripts/Locales', ...
 ...
 });
 app.controller('CentroCustoCtrl', ['$scope', '$http', 'ValidarFormulario', function ($scope, $http, $rootScope, $timeout, ValidarFormulario) {
   $scope.Salvar = function () {
    if (ValidarFormulario.validar(document.getElementsByTagName('input'))) { ...// Cannot read property 'validar' of undefined

  );

我试过 factory ,但也没有用:

angular.module('Services', [])
.factory('ValidarFormulario', [function () {

    return{
        validar : function (form) {
            var valido = true;
           //code
                }
            }
            return valido;
          }
      }
   }]);

})();

拜托,我很感激你能提供的任何帮助。

最佳答案

问题是你在 DI 内联数组中有错误的依赖序列,基本上它们在数量和序列上不匹配

app.controller('CentroCustoCtrl', ['$scope', '$http', 'ValidarFormulario',
    //removed $rootScope, $timeout which wasn't used.
    function ($scope, $http, ValidarFormulario) {

或者无论哪种方式,你都可以在数组中添加依赖项,如果它们真的要像下面这样在 Controller 中使用的话

app.controller('CentroCustoCtrl', ['$scope','$http','$rootScope','$timeout','ValidarFormulario', 
    function ($scope, $http, $rootScope, $timeout, ValidarFormulario) {

关于javascript - AngularJS - Controller 和工厂 - 我在包含/注入(inject)函数时哪里出错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208264/

相关文章:

javascript - 避免在 d3.geo.tile 中闪烁

c# - Entity Framework 和带有延迟加载的构造函数注入(inject)

javascript - Illustrator 通过 javascript 编辑链接文件路径

Javascript 拼接在 jQuery .each() 上中断了吗?

javascript - 如何将图像保存在特定文件夹 s3 下?

css - 在 Angular UI-Grid 中选择一行时复制剪贴板上的行数据

javascript - 如何摆脱 AngularJS 中当前域的 url 链接?

php - 如何利用 StorageFacade 的 Filesystem 类的 glob 方法?

java - 使用非 Spring Groovy 类中的服务

javascript - 使用 jQuery(或 JavaScript)查找和替换 HTML 特殊字符