javascript - 服务 vs Controller vs 外部 js 将常用方法放入 AngularJS 中

标签 javascript angularjs code-reuse redundancy

我有一个 angularjs 应用程序,它有几个带有多个 View 的 Controller 。当我开始编写应用程序时,很少有方法(类似的方法)被用在多个地方,最初我认为可以将这些方法放在需要的地方(两个或三个 Controller )。但随着我的应用程序的增长,我开始注意到代码冗余问题,因为更多地方需要该方法。 肯定是我缺乏经验导致了这个问题。

现在我决定从我的应用程序中删除这个冗余代码。我找到了以下选项:

  1. 服务方式:删除多余的代码并将其放入新的服务中,并将该服务包含在我需要该功能的所有地方。

  2. 外部JS:将多余的代码放在外部js文件中,只调用需要的方法即可。

  3. 保留代码不变。

但在这里我想提一下,我所说的冗余代码耦合不是很紧密,可以在任何地方添加和删除,只需很少的努力。

现在我想知道的是,从以上选项中,我应该选择哪一个? 或者是否有更好的选项可以解决这个问题(可能由 angularJS 本身提供)。

编辑代码的基本示例:正如我所说

$scope.showSomething = function (show, ele) {
    //show or hide the ele (element) based on value of show 
}

最佳答案

您正在使用 Angular,所以您肯定希望根据 MVC 构建您的应用程序。如果您的代码像任何东西一样放在 js 文件中的任何位置,您的应用程序将遵循哪种 MVC 模式。我建议将您的代码放入服务中。这就是减少冗余的 Angular 方法。您还可以选择将函数设置为 $rootscope here

关于javascript - 服务 vs Controller vs 外部 js 将常用方法放入 AngularJS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354522/

相关文章:

javascript - 如何在 dist 目录中生成单独的 package.json 文件?

javascript - AngularJs:使用 ng-click 两次显示点击元素

html - CSS 平铺、嵌套 div 多行居中对齐问题

javascript - 如何以编程方式将 jQuery 插件 'intl-tel-input' 重置为默认占位符

javascript - 在 ajax 查询中将 async 属性设置为 false 时,不会调用 Web Api Controller

javascript - 使用原型(prototype)时从类获取方法

AngularJS - $resource 获取和发布不同的 URL

php - 如何在 Javascript 持久性周围正确工作?

c# - 使用消息类静态方法接受操作来包装 Try/Catch

css - 开发人员可以在其网站上包含的全局、独立于 CSS 的栏