如何在angularjs中启动全局数据
在我的应用程序中,有一些数据将被许多视图或控制器使用。您可以认为它们是一些数据字典,比如状态映射定义 现在,我的解决方案是将它们放入AppContoller中,并将它们放入$scope或$rootScope中。(AppController中的$scope是所有控制器的父作用域,因此所有控制器中的数据都可以访问。) 但问题是,它将使用$resource异步启动,因此它们可能还没有准备好使用。因为所有数据都将使用$resource获取。有时,其他数据是在必要的全局数据之前获得的 现在在使用全局数据的控制器中,我必须检查全局数据,如果它没有准备好,稍后调用初始化函数并超时如何在angularjs中启动全局数据,angularjs,Angularjs,在我的应用程序中,有一些数据将被许多视图或控制器使用。您可以认为它们是一些数据字典,比如状态映射定义 现在,我的解决方案是将它们放入AppContoller中,并将它们放入$scope或$rootScope中。(AppController中的$scope是所有控制器的父作用域,因此所有控制器中的数据都可以访问。) 但问题是,它将使用$resource异步启动,因此它们可能还没有准备好使用。因为所有数据都将使用$resource获取。有时,其他数据是在必要的全局数据之前获得的 现在在使用全局数据的
所以,我的问题是,是否有更好的解决方案来初始化所有应用程序使用的必要数据?好吧,据我所知,您需要确保当您的应用程序启动时,您从服务器获取的一些数据可以在整个应用程序中全局使用 我的建议是采用以下方法:
var app = angular.module('myApp', []);
app.service('constantService', function() {
// All your constants declared here.
});
app.run(function($rootScope, $http, constantService) {
/*
Make an ajax call here and fetch all the Constants from your server.
var request = {};
request.method = 'POST';
request.data = {};
request.url = url;
var promise = $http(request);
var service = this;
promise.success(function(data, status, header, config) {
if (showLoader === true || showLoader === undefined) {
service.hideModal();
}
successCallback(data);
});
promise.error(function(data, status, header, config) {
});
*/
});
您可以在加载这些常量时显示加载消息,以避免呼叫过程中的用户干预。好吧,据我所知,您需要确保在应用程序启动时,从服务器获取的一些数据可以在整个应用程序中全局使用 我的建议是采用以下方法:
var app = angular.module('myApp', []);
app.service('constantService', function() {
// All your constants declared here.
});
app.run(function($rootScope, $http, constantService) {
/*
Make an ajax call here and fetch all the Constants from your server.
var request = {};
request.method = 'POST';
request.data = {};
request.url = url;
var promise = $http(request);
var service = this;
promise.success(function(data, status, header, config) {
if (showLoader === true || showLoader === undefined) {
service.hideModal();
}
successCallback(data);
});
promise.error(function(data, status, header, config) {
});
*/
});
您可以在加载这些常量时显示加载消息,以避免呼叫过程中的用户干预。好吧,据我所知,您需要确保在应用程序启动时,从服务器获取的一些数据可以在整个应用程序中全局使用 我的建议是采用以下方法:
var app = angular.module('myApp', []);
app.service('constantService', function() {
// All your constants declared here.
});
app.run(function($rootScope, $http, constantService) {
/*
Make an ajax call here and fetch all the Constants from your server.
var request = {};
request.method = 'POST';
request.data = {};
request.url = url;
var promise = $http(request);
var service = this;
promise.success(function(data, status, header, config) {
if (showLoader === true || showLoader === undefined) {
service.hideModal();
}
successCallback(data);
});
promise.error(function(data, status, header, config) {
});
*/
});
您可以在加载这些常量时显示加载消息,以避免呼叫过程中的用户干预。好吧,据我所知,您需要确保在应用程序启动时,从服务器获取的一些数据可以在整个应用程序中全局使用 我的建议是采用以下方法:
var app = angular.module('myApp', []);
app.service('constantService', function() {
// All your constants declared here.
});
app.run(function($rootScope, $http, constantService) {
/*
Make an ajax call here and fetch all the Constants from your server.
var request = {};
request.method = 'POST';
request.data = {};
request.url = url;
var promise = $http(request);
var service = this;
promise.success(function(data, status, header, config) {
if (showLoader === true || showLoader === undefined) {
service.hideModal();
}
successCallback(data);
});
promise.error(function(data, status, header, config) {
});
*/
});
您可以在加载这些常量时显示加载消息,以避免用户在调用过程中进行干预。一种可能的解决方案是使用服务作为单例。并在您的rootScope中引用它,然后每个控制器和视图都可以看到它。当您想使用
$resource
时,只需注入服务即可。因此,您的意思是,我将以“TheService.getData()”的方式使用数据。然后(…)”。对吗?但我真的不想对数据使用promise,我想直接使用它们。因为有很多地方可以使用这些数据,而且它们是不可变的。只有前几次需要检查数据是否已获取。使用解析,它将为您获取数据并在加载前等待views@Mavlarn您只需使用Service.data
来获取/设置数据,而不是promise。一种可能的解决方案是使用服务作为单例。并在您的rootScope中引用它,然后每个控制器和视图都可以看到它。当您想使用$resource
时,只需注入服务即可。因此,您的意思是,我将以“TheService.getData()”的方式使用数据。然后(…)”。对吗?但我真的不想对数据使用promise,我想直接使用它们。因为有很多地方可以使用这些数据,而且它们是不可变的。只有前几次需要检查数据是否已获取。使用解析,它将为您获取数据并在加载前等待views@Mavlarn您只需使用Service.data
来获取/设置数据,而不是promise。一种可能的解决方案是使用服务作为单例。并在您的rootScope中引用它,然后每个控制器和视图都可以看到它。当您想使用$resource
时,只需注入服务即可。因此,您的意思是,我将以“TheService.getData()”的方式使用数据。然后(…)”。对吗?但我真的不想对数据使用promise,我想直接使用它们。因为有很多地方可以使用这些数据,而且它们是不可变的。只有前几次需要检查数据是否已获取。使用解析,它将为您获取数据并在加载前等待views@Mavlarn您只需使用Service.data
来获取/设置数据,而不是promise。一种可能的解决方案是使用服务作为单例。并在您的rootScope中引用它,然后每个控制器和视图都可以看到它。当您想使用$resource
时,只需注入服务即可。因此,您的意思是,我将以“TheService.getData()”的方式使用数据。然后(…)”。对吗?但我真的不想对数据使用promise,我想直接使用它们。因为有很多地方可以使用这些数据,而且它们是不可变的。只有前几次需要检查数据是否已获取。使用解析,它将为您获取数据并在加载前等待views@Mavlarn您可以简单地使用service.data
来获取/设置数据,而不是promise。