Model view controller 应用程序初始化处理程序等效于Angular?
我想以角度“模拟”全局变量。我还希望能够在App_Init()类型的处理程序中初始化这些“全局变量”。这样的初始化将需要$http调用来填充这些变量。我希望在Angular“调用”控制器和视图之前完全加载所有“全局变量”,因为控制器将依赖于初始化的数据 在这方面有哪些最佳实践?嵌套控制器?服务Model view controller 应用程序初始化处理程序等效于Angular?,model-view-controller,angularjs,controller,initialization,Model View Controller,Angularjs,Controller,Initialization,我想以角度“模拟”全局变量。我还希望能够在App_Init()类型的处理程序中初始化这些“全局变量”。这样的初始化将需要$http调用来填充这些变量。我希望在Angular“调用”控制器和视图之前完全加载所有“全局变量”,因为控制器将依赖于初始化的数据 在这方面有哪些最佳实践?嵌套控制器?服务 示例:管理餐厅菜单项的应用程序。每个项目将与一个类别(饮料、开胃菜、甜点等)相关联。在Angular“甚至触摸”食品的控制器和视图之前,我需要先加载所有这些类别。您是否正在为您的应用程序使用ng view
示例:管理餐厅菜单项的应用程序。每个项目将与一个类别(饮料、开胃菜、甜点等)相关联。在Angular“甚至触摸”食品的控制器和视图之前,我需要先加载所有这些类别。您是否正在为您的应用程序使用
ng view
和$routeProvider
服务?假设你是或将考虑,这里是你可以按照步骤的顺序:
route
对象的resolve
属性,确保在加载用户请求的视图(以及相应的控制器)之前解决对类别
服务的依赖关系。因此,您可以将类别
服务注入控制器,并确保该服务始终可用,因为它已被解析resolve
属性,请参阅和。我建议你仔细检查一下
此外,为了理解resolve
的工作原理,您需要熟悉承诺和延迟的概念。如果你不是,这是一个很好的话题出发点。是AngularJS对承诺的履行/延期
我无法评论上述方法是否是最佳实践,但我知道使用服务提供对某些数据/功能的访问是一种好的实践,例如如果存在全局变量。您是否为您的应用程序使用
ng view
和$routeProvider
服务?假设你是或将考虑,这里是你可以按照步骤的顺序:
route
对象的resolve
属性,确保在加载用户请求的视图(以及相应的控制器)之前解决对类别
服务的依赖关系。因此,您可以将类别
服务注入控制器,并确保该服务始终可用,因为它已被解析resolve
属性,请参阅和。我建议你仔细检查一下
此外,为了理解resolve
的工作原理,您需要熟悉承诺和延迟的概念。如果你不是,这是一个很好的话题出发点。是AngularJS对承诺的履行/延期
我无法评论上述方法是否是最佳实践,但我知道使用服务提供对某些数据/函数的访问是一种好的实践,例如,如果存在全局变量。您可以创建一个服务,从服务器加载配置并将其放在rootScope中,在控制器中,可以对函数调用此服务,也可以在视图中从ng init调用此函数 看法 您的服务(初始化应用程序) 另一个提示 如果异步调用遇到问题,可以尝试使用
var deferred = $q.defer();
//when your call come back
deferred.resolve(yourData);
//and in the last line of function
deferred.promise;
您可以创建一个服务来从服务器加载配置并将其放在rootScope中,在控制器中,您可以在函数上调用此服务,在视图中从ng init调用此函数 看法 您的服务(初始化应用程序) 另一个提示 如果异步调用遇到问题,可以尝试使用
var deferred = $q.defer();
//when your call come back
deferred.resolve(yourData);
//and in the last line of function
deferred.promise;
module.service('myService', function($http, $rootScope){
//do something
$rootScope.config = configLoaded;
}
var deferred = $q.defer();
//when your call come back
deferred.resolve(yourData);
//and in the last line of function
deferred.promise;