Javascript AngularJS中的代码分离
我对AngularJS很陌生,所以在阅读这个问题时请记住 我有一些功能,我想让我的网站中的不同模块可以在全球范围内使用,计划是让页面以单页应用程序样式执行自己的功能(因此,用户列表/创建/修改将是一个页面,而产品列表/创建/修改将是另一个页面)。我希望有一些共享的逻辑,比如实用程序功能,以及可以在不同页面模块之间共享的用户授权 这就引出了我的问题 假设我将所有帐户功能封装在一个服务中(例如app.factory('account,etc…),并分离到它自己的JS文件中,那么最好将其放在它自己的模块中并使用依赖项注入,如下所示:Javascript AngularJS中的代码分离,javascript,angularjs,Javascript,Angularjs,我对AngularJS很陌生,所以在阅读这个问题时请记住 我有一些功能,我想让我的网站中的不同模块可以在全球范围内使用,计划是让页面以单页应用程序样式执行自己的功能(因此,用户列表/创建/修改将是一个页面,而产品列表/创建/修改将是另一个页面)。我希望有一些共享的逻辑,比如实用程序功能,以及可以在不同页面模块之间共享的用户授权 这就引出了我的问题 假设我将所有帐户功能封装在一个服务中(例如app.factory('account,etc…),并分离到它自己的JS文件中,那么最好将其放在它自己的模
var accountMod = angular.module('accountModule', ['dependencies']);
accountMod.factory('account', ['dependencies', function (...) { }]);
或者假设app变量的名称始终为app,并将其表示为:
app.factory('account', ['dependencies', function (...) { }]);
从功能上来说,这两种方法都是可行的,但我正在尝试使用最佳实践。第二种选择似乎有限,我从来没有热衷于假设变量始终是相同的名称,对我来说依赖注入方法似乎更好,但我已经看到了这两种风格的许多例子
非常感谢您的帮助 真是个好问题。这里面有微妙的东西。 我认为使用下面的代码会很有帮助,即使用模块
var accountMod = angular.module('accountModule', ['dependencies']);
accountMod.factory('account', ['dependencies', function (...) { }]);
谢谢。我只需为你的代码示例支付2美分。 不建议采用以下方法:
var accountMod = angular.module('accountModule', ['dependencies']);
accountMod.factory('account', ['dependencies', function (...) { }]);
最佳实践是每个文件只有一个组件,因此无需定义变量。看看这个:
如果您刚开始学习Angular,我建议您阅读John Papa的《风格指南》的其余部分我喜欢Angular fullstack generator for yeoman的结构 您可以看到每个模块和组件是如何分离的,内部、反工厂、服务、指令等以及它们的关联测试是如何在每个功能的一个文件中分割的
对于你的提议来说,这可能有些过分,你只能从角度考虑。每个模块通常都应该是独立的,易于测试……非常好,因此将模块分开并使用DI!非常感谢!!谢谢你的回答!我同意你的观点,这种方法使代码更易于测试,我想我会沿着这条路走下去,看看我的结局如何!那是一篇很棒的文章!谢谢你给我指明了那个方向!我很惊讶有这么多的排列,我想是找到了一个适合我的风格!我喜欢将模块分配给变量,然后将控制器和工厂添加到变量中的组织方式,但可以看出这可能会被视为过度使用。。。使用变量的优点之一似乎是在构造过程中使用DI,而不是直接使用喷油器。稍后我将详细阅读样式指南!!谢谢你的提示!