我们正在使用第三部分i18n模块在我的应用程序中进行翻译。具体来说是https://github.com/doshprompt/angular-localization
我们遇到的问题是在可能加载之前需要locale
服务。如果在状态中需要它,我们可以在状态解析时解析locale
,但如果在任何状态被请求之前必须运行脚本,则存在时序冲突。
在此示例中,我尝试在加载locale
之前加载需要locale
的服务,或者可能有足够的时间加载。
angular.module('config', []).service('myService', ['ngLocalization', function(locale) {
return {
foo: locale.getString('bar')
}
}]);
angular.module('app', ['config']).run(['myService', function(myService) {
/// ... do stuff ...
}]);
这看似简单 - 只需将locale.ready('common').then(function() {});
添加到服务即可。我们可以做的事情...... 无处不在(有很多地方)。但是我们并不想把这个令人困惑的混乱添加到我们不稳定的代码中。而且我们不想养成每个服务,控制器,指令等的习惯,检查所有可能的依赖关系及其资源是否独立加载。
$ httpBackend用于单元测试但可以使用 - 或者是否有其他服务可用于设置对http请求的响应?如果已经有响应,那么它是同步的吗?然后,当配置模块加载时,它会对所有需要的lang文件发出ready
请求,这些文件会立即应用,并且时序冲突将会消失。
思想?