我的角度服务存在问题。角度服务返回undefined
我的服务具有下面的代码:
app.service("Utilidades", ['$http', '$window', function ($http, $window) {
return {
Get: function (urlAbsoluta, parametros, callback) {
var Utilidades = this;
$http
.get(app.UrlBase + urlAbsoluta, parametros)
.then(function (data) {
var Datos = angular.fromJson(data);
Utilidades.GuardarToken(Datos.Token);
callback(Datos);
});
},
ObtenerMenu: function() {
var Utilidades = this;
Utilidades.Get("Administracion/Api/Usuarios/Menu", {}, function (Datos) {
Datos = angular.fromJson(Datos.data);
if (Datos.Error == "") {
return Datos.Resultado;
} else {
return "";
}
});
}
}
}]);
然后,在我的控制器我有下面的代码:
app.controller('LoginCtrl', ['$scope', '$http', '$location', 'Utilidades',
function Iniciador($scope, $http, $location, Utilidades) {
var Li = this;
Li.Usuario = "";
Li.Contrasena = "";
Li.Error = "";
Li.MenuItems = [];
Li.Menu = function() {
Li. MenuItems = Utilidades.ObtenerMenu();
}
}]
);
当我运行此,Li.MenuItems具有未定义值,我不不知道为什么。
你错过了','后您的服务的'回报{ ...' – Aaron
发生这种情况是因为您正在做的“返回”是针对“函数(Datos){” 不适用于“ObtenerMenu:function(){”。 您在Get函数中回调了这个已知问题。我不能建议任何解决方案,我不知道一个,接受syncronic ajax这是不可接受的。 – Amit
是因为李后的空间。 “Li。MenuItems = Utilidades.ObtenerMenu();” –