gpt4 book ai didi

javascript - 在 AngularJs 中将值从提供者传递到 Controller

转载 作者:行者123 更新时间:2023-12-03 06:32:26 26 4
gpt4 key购买 nike

我正在尝试将数据从数据库获取到用户界面。通过提供者给出的 URL 正在获取数据。

Controller DetailsProvider.getDashboardDetails() 中的

Controller 正在获取null。

var appmod = angular.module('project.DetailDashboardController', []);

appmod.controller("DetailDashboardController", ['$rootScope', '$scope', '$state', 'DetailsProvider',function($rootScope, $scope, $state,DetailsProvider) {
console.log("DetailDashboardController --- ");

$scope.DetList= DetailsProvider.getDashboardDetails()

}]);

})(window, window.angular);

提供者将调用该列表

(function(angular) {

var appmod = angular.module('project.DetailsServiceProvider', []);
appmod.provider('DetailsProvider', function() {
this.$get = ['_$rest', function DetailServiceFactory(_$rest) {
return new DetailsProvider(_$rest);
}];
});

function DetailsProvider(_$rest) {
this._$rest = _$rest,
this.getDashboardDetails = function(_callback, _data) {
var newData = null;
_$rest.post({
url: window.localStorage.getItem('contextPath') +'home/listdetail',
data: {} ,
onSuccess:_callback
}
});

}
};

})(window.angular);

预先感谢您的任何回复!

最佳答案

您应该从服务方法返回promise,并在 Controller 中执行thenable。

根本原因:您返回的newData将在完成ajax调用后初始化。在完成它之前,您将返回相同的变量,该变量将始终为空.

在提供者中,

(function(angular) {

var appmod = angular.module('project.DetailsServiceProvider', []);
appmod.provider('DetailsProvider', function() {
this.$get = ['_$rest', function DetailServiceFactory(_$rest) {
return new DetailsProvider(_$rest);
}];
});

function DetailsProvider(_$rest) {
this._$rest = _$rest,
this.getDashboardDetails = function(_callback, _data) {
var newData = null;
_$rest.post({
url: window.localStorage.getItem('contextPath') +'home/listdetail',
data: {} ,
onSuccess:_callback
}
});
}
};

})(window.angular);

在 Controller 中,

$scope.list = function() {
DetailsService.getDashboardDetails(function(data){

varr holdIt = data.data.DList;

});
};

关于javascript - 在 AngularJs 中将值从提供者传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com