角度模块名称中的点是什么意思

fou*_*rth 3 javascript angularjs

我是这个领域的新人.当我读到这样一些代码 https://plnkr.co/edit/YeahrG28bT2izX8gMKor?p=preview 我发现,如果我不把你'myApp.dashboard','myApp.value'angular.module('myApp', ['myApp.dashboard','myApp.value']);这是行不通的.

如果我这样写:

(function() {
  angular.module('myApp', []);
})();

(function() {
  angular.module('myApp.dashboard', ['myApp.value']);
})();

(function() {
  angular.module('myApp.value', []);
})();
Run Code Online (Sandbox Code Playgroud)

它也不起作用.

你能告诉我这里的点是什么意思,为什么angular.module('myApp.dashboard', ['myApp.value']);不起作用?

对不起,这段代码真的很乱,我没有做太多关于它,只是为了测试.

(function() {
  angular.module('myApp', ['myApp.dashboard','myApp.value']);
})();

(function() {
  angular.module('myApp.dashboard', []);
})();

(function() {
  angular.module('myApp.value', []);
})();

(function() {
  'use strict';
  angular.module('myApp.value').factory('whichToShow', function() {
    alert("running2");
    var logged = true;
    return {
      getVar: function() {
        return logged;
      },
      setVar: function(value) {
        logged = value;
      }

    };
  });
})();

(function() {
  'use strict';
  angular.module('myApp.dashboard').controller('mainControl', mainControl);

  mainControl.$inject = ['whichToShow'];
  alert("running1");

  function mainControl(whichToShow) {
    this.logged = whichToShow.getVar();
    alert("this.logged");
  }
})();
Run Code Online (Sandbox Code Playgroud)

补充:我不应该问第二个问题,我在其他地方犯了一个错误,抱歉.

Ara*_*ind 5

它实际上是一种可以遵循的编码风格,以消除命名冲突.

对子模块使用独立的命名约定和分隔符.

为什么?:唯一名称有助于避免模块名称冲突.分隔符有助于定义模块及其子模块层次结构.例如,app可能是您的根模块,而app.dashboard和app.values可能是用作app依赖项的模块.

参考John Papa角度风格指南 样式Y021

我还建议您清楚地了解角度中每个组件的样式指南,如John Papa 在上面的Github回购中所建议的那样.


elf*_*fan 5

['myApp.dashboard','myApp.value']讲述的依赖关系。这意味着myApp需要使用这些依赖项来工作。

至于点,这只是一个很好的命名约定。您也可以不带点使用。该名称myApp.dashboard有助于表明该dashboard模块是该模块的一部分或子myApp模块。但从技术上讲,点不是必需的。您也可以将其命名为dashboardonly。依赖关系在[ ]数组中明确表达,而不是在名称本身中。