大佬教程收集整理的这篇文章主要介绍了在调用控制器之前初始化AngularJs应用程序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
localisationservice.getmessages($scope.languagE).then( function (data) { $scope.messages = data; //initialze kendo grids with the messages etc. //all of the controller logic is here }
我想只使用一次应用程序版本并将其存储在那里.我不必每次都检查一下版本(如果在新版本中添加了新消息)?
我发现使用$routeProvider的建议,但我的申请不是SPA.所以我需要其他想法/建议.对你的帮助表示感谢.
resolve: { l10n: (localisationservicE) => { return localisationservice.getmessages(localisationservice.languagE) } }
可以选择缓存结果,以避免语言不变时的请求.
另外,route definitions can be processed自动为所有路由添加公共本地依赖(l10n).
应该异步初始化的全局服务的问题也可以通过异步引导和APP_INITIALIZER提供程序在Angular 2及更高版本中解决. AngularJS没有此功能.正如this answer所解释的那样,为了在AngularJS中实现这一点,应该有两个应用程序,其中初始化程序应用程序加载所有必需的数据,然后引导主应用程序:
angular.module('app',[/* ... */]); angular.module('appInitializer',[]) .factory('loader',($http) => { return $http.get('...').then((result) => result.data); }) .factory('initializer',(loader,$document) => { return loader.then((data) => { angular.module('app').constant('l10n',data); $document.ready(() => { angular.bootstrap($document.find('body'),['app']); }); }); }); angular.injector(['ng','appInitializer']) .get('initializer') .catch((err) => console.error(err));
考虑到在原始代码中,语言是使用$scope.language动态定义的,第二个选项(初始化程序应用程序)不适用,这应该使用第一个选项(路由解析器)执行.
以上是大佬教程为你收集整理的在调用控制器之前初始化AngularJs应用程序全部内容,希望文章能够帮你解决在调用控制器之前初始化AngularJs应用程序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。