【问题标题】:angular 1.5 method .name in export angular.module导出 angular.module 中的 angular 1.5 方法 .name
【发布时间】:2016-07-03 11:50:03
【问题描述】:

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

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

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


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

这是一段注入服务的文件代码(account.js):

    import addressLocalService from '../services/address-local';

我的问题是:

  • .name 方法在导出中有什么作用;我在网上看到的大多数示例都不使用 .name 方法

  • 在导出中使用“erp.services.addressLocal”有什么意义?在导入时不使用,只是一个'import addressLocalService';完整的文档语法是什么?

  • /* @ngInject */,有用吗?

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

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    让我们逐行检查:

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

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

    .factory('addressLocal', addressLocal)
    

    这会将名为 'addressLocal' 的服务添加到 Angular 模块。该服务的定义要归功于随后定义的工厂函数addressLocal。这将返回角度模块。

    .name
    

    这允许访问模块的名称。此值(即“erp.services.addressLocal”)是此文件中定义的 ES6 模块导出的值。

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

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

    ['$http', function($http)]
    

    如果你缩小代码,这个奇怪的符号是必要的,因为缩小器会将$http 更改为像a 这样无意义且更短的东西,而 Angular 使用参数名称来知道要注入什么。

    import addressLocalService from '../services/address-local';
    

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

    【讨论】:

    • 感谢 JB 的精彩解释......这对你来说是正确的导入行吗?
    • 如果目标是获取模块的名称,那么您的行是正确的。应该更好地命名它是变量(addressLocalService)。代码对这个变量做了什么?
    • 它只是在另一个表单组件中导入以从一个完整的 api 获取记录,我可以使用另一个名称。?或者我如何使用“erp.services.addressLocal”默认名称?方法 .name 真的有用吗?
    • 这并不清楚。编辑您的问题并发布导入后的代码。
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 2016-02-23
    • 2018-04-20
    • 1970-01-01
    • 2016-06-08
    • 2016-05-16
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多