使用其他方法扩展Angular是不是很糟糕?

Bra*_*ens 1 javascript jquery angularjs

我正在开发一个应用程序,并且Angular提供了一些我认为有用的方法.我启动了一个文件,用所需的方法扩展Angular,而不是创建一个实用程序服务并注入它(对于简单的jQuery-esque - 方法来说这似乎很麻烦).

所以,我一直在问我这是不是一个好主意?有理由避免这种做法吗?

例如 angular.extensions.js

// Angular has been previously loaded

;(function() {

  angular.extend(angular, {

    isEmptyObject: function(obj) {
      var name;
      for ( name in obj ) {
        return false;
      }
      return true;
    }

    // etc. for simple helpers

  })

})();
Run Code Online (Sandbox Code Playgroud)

Jon*_*wny 5

我想这在技术上是可以的,但可能有点禁忌风格.考虑一位新开发人员加入您的团队并angular.generatePuppy()在您的代码库中查看.他angular.generatePuppy()谷歌搜索并且在Angular API中找不到任何文档或对它的引用,随之而来的是挫败感,尽管google的小狗结果略有减少.如果您已经创建了一个实用程序服务,那么将它注入任何您可能需要的地方都很容易.一旦你完成设置,它就没有额外的工作了,而且在我看来,随着你所写的内容和Angular提供的内容之间的界限明确,我们会使代码更具可读性.

  • 有趣的*角度*.我肯定试图与现有的,简单的实用方法保持一致,而不是在角度空间中添加模糊的功能.但有意义的是,它会误导角度API旨在提供和正式支持. (2认同)