gpt4 book ai didi

angularjs - 为什么AngularJS核心需要检测模块ngLocale是否已经创建?

转载 作者:行者123 更新时间:2023-12-02 08:04:01 27 4
gpt4 key购买 nike

在AngularJS源代码中,有这样一段,注释是我添加的

try {
angularModule('ngLocale'); //this detect wether ngLocale has been created
} catch (e) {
//if not created , then create it here
angularModule('ngLocale', []).provider('$locale', $LocaleProvider);
}

我了解 ngLocale 的工作原理,因为您可以使用诸如

之类的文件覆盖默认 ngLocale$locale 服务
<script src="../src/ngLocale/angular-locale_fr-ca.js"></script>

但是这是在 AngularJS 核心运行之后。因为从字面上看,异常总是抛出,为什么不直接删除检测代码,而简单地使用它呢?

angularModule('ngLocale', []).provider('$locale', $LocaleProvider);

最佳答案

这是因为 AngularJS 缺乏以优雅的方式检查模块可用性的能力。因此,框架需要为不存在的模块引发“模块加载异常”,而不是 checkModule() 或 findModule()。

确保模块可以接受一个参数来告诉系统是否可以找不到模块,并简单地返回 null 作为结果。

实际上,让模块名称在 var mod = angular.module("?moduleName") 代码路径中以问号开头(而不是在定义模块时)将使其成为一个简单的单行代码来忽略异常。

关于angularjs - 为什么AngularJS核心需要检测模块ngLocale是否已经创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927267/

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