【发布时间】:2016-07-12 12:29:14
【问题描述】:
我是 Angular 新手,无法确定我哪里出错了。我只是想简单地将我的工厂注入我的控制器,参考资料说:“无法读取未定义的属性'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;
}
}
}]);
})();
感谢您提供的任何帮助。
【问题讨论】:
-
在使用 ValidarFormulario 时删除此关键字
-
@VinitSolanki 在为服务添加功能时,
this关键字是正确的.. -
是的,你是对的 pankaj,这就是我给你投票的原因。
标签: javascript angularjs dependency-injection angularjs-scope angularjs-service