javascript - AngularJS 从文件夹加载 Controller

标签 javascript angularjs

我是 AngularJS 的新手,对如何从结构化文件夹加载 Controller 和其他 js 有疑问?

例如我有结构:

app/
-common
-users
--userController.js
--userService.js
-orders
-app.js

我应该如何从文件夹用户加载 Controller 和服务?

还有一个小问题:方形护腕是什么意思?

app.config(['someThing'], function($routeProvider)

最佳答案

您可以将代码放在您想要的位置。如果将它们放入 Angular 模块中, Angular 会找到它。所以如果你在 /app/common/services/foo.js 有服务喜欢:

angular.module('app').service('foo', function() { ... });

您可以在 userController 中执行此操作:

angular.module('app').controller('UserController', function($scope, foo) { ... });

在这里你可以看到我是如何注入(inject) foo 的在我们的 Controller 中。 Angular Dependency Injection系统足够智能,无论您将代码放在哪里都能找到您的代码。

您还可以创建不同于 app 的模块,你可以有:

angular.module('other').service('bar', function() { ... });

以及您定义 app 的位置模块,像这样:

angular.module('app', []);

您只需要将新模块作为依赖项添加到那里,这就是 [] 的内容。用于:

angular.module('app', ['other']);

现在您可以使用服务bar在你的 Controller 中也:)

另一方面,您所说的语法是数组表示法,如下所示:

angular.module('app').controller('FooCtrl', ['$scope', 'foo', function($scope, foo) { ... }]);

如果您在缩小代码时破坏了代码,则需要这样做,因为在缩小代码中,您可能会得到如下内容:

angular.module('app').controller('FooCtrl', ['$scope', 'foo', function(f, g) { ... }]);

如您所见,函数参数现在是 fg Angular 不知道根据这些名称注入(inject)什么,所以它会查看我们提供的字符串,所以它会知道 f$scopegfoo .

不需要直接使用这个注释,有几个工具可以为你做到这一点,比如 ngmin .

干杯。

编辑:您需要将每个 javascript 文件添加到 <script> 中否则不会加载并且 Angular 也找不到它。

一个一个地添加文件很痛苦,因为你可以有 5 个,也可以有 200 个。

最好将它们连接起来,为此我建议:grunt-concat-sourcemap因为它会生成源映射,所以整个应用程序只有 1 个文件,但在开发工具中,您会在单独的文件中看到它们。

我建议您检查 linemanjs,它是开发 javascript 应用程序的好工具,它可以为您连接文件、源映射、缩小、数组符号等等...

关于javascript - AngularJS 从文件夹加载 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648162/

相关文章:

javascript - 智能表:按列中的多个属性搜索

javascript - Webpack 5 实时重载

javascript RegExp 字边界问题

javascript - 使用 Gulp 远程导入字体

javascript - Angular js - 未在 $routeChangeStart 中获取最后插入的记录

javascript - 检查 JValue 字符串在 AngularJS 中是否有值

javascript - Protractor :如何像我们在 java getText.trim() 中使用的那样从字符串中删除多余的空格

javascript - 样式被 Material-UI 样式覆盖

AngularJS 如何将 orderby 与货币值一起使用?

javascript - Angular js指令: How to set selected value or default value