gpt4 book ai didi

angularjs - 导出 angular.module 中的 angular 1.5 方法 .name

转载 作者:行者123 更新时间:2023-12-04 10:47:49 27 4
gpt4 key购买 nike

我一直在寻找教程和文档;但我不明白下面的代码。 2个文件中有2段代码;服务;以及导入服务的文件。

这是服务 Angular 文件 (address-local.js) 的一段代码:

    export default angular.module('erp.services.addressLocal', [])
.factory('addressLocal', addressLocal)
.name;


/* @ngInject */
function addressLocal($http) {

这是注入(inject)服务(account.js)的一段文件代码:
    import addressLocalService from '../services/address-local';

我的问题是:
  • .name 方法在导出中有什么作用;我在网上看到的大多数示例都不使用 .name 方法
  • 在导出中使用“erp.services.addressLocal”有什么意义?在导入时不使用,只是一个'import addressLocalService';完整的文档语法是什么?
  • /* @ngInject */,有用吗?

  • 我在哪里可以找到关于 .name 的完整文档或我可以在“导出”中使用的所有方法?它是 ES6 与 Angular 混合的吗?

    最佳答案

    让我们逐行检查:

    angular.module('erp.services.addressLocal', [])

    这定义了一个名为 'erp.services.addressLocal' 的新 Angular 模块.这个名字可以是任何东西。模块只是组件(服务、 Controller 等)的存储库。返回值是创建的 Angular 模块。
    .factory('addressLocal', addressLocal)

    这将添加一个名为 'addressLocal' 的服务到 Angular 模块。该服务是通过工厂函数定义的, addressLocal , 之后定义。这将返回 Angular 模块。
    .name

    这允许访问模块的名称。该值(即“erp.services.addressLocal”)是由该文件中定义的 ES6 模块导出的值。
    /* @ngInject */
    function addressLocal($http) {

    这是创建并返回 addressLocal 服务的工厂函数。它使用注入(inject)的 $http 服务。 @ngInject 由构建时使用的工具使用,名为 ng-annotate,它允许将上述代码转换为
    ['$http', function($http)]

    如果你缩小你的代码,这个奇怪的符号是必要的,因为缩小器会改变 $httpa 这样无意义且更短的东西, 并且 angular 使用参数名称来知道要注入(inject)什么。
    import addressLocalService from '../services/address-local';

    这允许导入从精细地址-local.js 导出的内容,即模块名称。我不知道这一行之后的代码对它有什么作用。但是变量名的命名很糟糕,因为 addressLocalService不是addressLocalService,而是第一个文件中定义的模块名称。

    关于angularjs - 导出 angular.module 中的 angular 1.5 方法 .name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169651/

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