我的角度服務存在問題。角度服務返回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();」 –