当前位置: 首页 > 知识库问答 >
问题:

如何创建单独的AngularJS控制器文件?

申自明
2023-03-14

我的所有AngularJS控制器都在一个文件controllers.js中。该文件的结构如下:

angular.module('myApp.controllers', [])
  .controller('Ctrl1', ['$scope', '$http', function($scope, $http) {    
  }])
  .controller('Ctrl2', ['$scope', '$http', function($scope, $http) }
  }])

我想做的是将Ctrl1和Ctrl2放入单独的文件中。然后,我会在index.html中包含这两个文件,但该如何结构化呢?我试着做这样的事情,它在web浏览器控制台中抛出一个错误,说它找不到我的控制器。有什么提示吗?

我搜索了StackOverflow并发现了这个类似的问题--然而,这个语法在Angular的基础上使用了一个不同的框架(CoffeeScript),所以我一直无法理解。

AngularJS:如何在多个文件中创建控制器

共有2个答案

戴建义
2023-03-14

使用末尾带有数组的angular.Module API将告诉angular创建一个新模块:

MyApp.js

// It is like saying "create a new module"
angular.module('myApp.controllers', []); // Notice the empty array at the end here

在没有数组的情况下使用它实际上是一个getter函数。因此,要分离控制器,可以执行以下操作:

Ctrl1.js

// It is just like saying "get this module and create a controller"
angular.module('myApp.controllers').controller('Ctrlr1', ['$scope', '$http', function($scope, $http) {}]);

Ctrl2.js

angular.module('myApp.controllers').controller('Ctrlr2', ['$scope', '$http', function($scope, $http) {}]);

javascript导入过程中,只需确保myapp.js在AngularJS之后,但在任何controllers/services/等之前。否则angular将无法初始化您的controllers。

璩华辉
2023-03-14

文件一:

angular.module('myApp.controllers', []);

档案二:

angular.module('myApp.controllers').controller('Ctrl1', ['$scope', '$http', function($scope, $http){

}]);

档案三:

angular.module('myApp.controllers').controller('Ctrl2', ['$scope', '$http', function($scope, $http){

}]);

包括在该顺序中。我推荐3个文件,这样模块声明是独立的。

关于文件夹结构,有很多很多很多的意见,但这两个是相当好的

https://github.com/angular/angular-seed

http://briantford.com/blog/huuuuuge-angular-apps.html

 类似资料:
  • 问题内容: 我将所有AngularJS控制器都放在一个文件controllers.js中。该文件的结构如下: 我想做的是将Ctrl1和Ctrl2放入单独的文件中。然后,我会将这两个文件都包含在index.html中,但是应该如何构造呢?我尝试做这样的事情,它在网络浏览器控制台中引发错误,提示找不到控制器。有什么提示吗? 问题答案: 文件一: 文件二: 文件三: 按该顺序包括。我推荐3个文件,因此模

  • 问题内容: 我正在尝试将控制器拆分为多个文件,但是当我尝试在模块中注册它们时出现错误: 组控制器咖啡 usercontroller.coffee 错误 错误:参数’GroupController’不是函数,未定义 从文档中,我并没有真正获得模块方法的功能。它是否用密钥“ Webchat”存储我的控制器? 编辑: 似乎[]传递也会创建一个新模块并覆盖前一个模块 为避免这种情况,您必须忽略[] 问题答

  • 假设我有一个注册用户的简单API。对于每个用户,我收集基本信息,例如:姓名、电子邮件、状态、性别、婚姻状况。对于州、性别和婚姻状况,我有一个预先填充ID的数据库表,这样我可以在下拉列表中显示它们,并让用户选择每个ID。 现在,当涉及到用于注册用户的API控制器时,我应该在单个JSON对象中传递值列表吗? 或者我应该为每一个单独的控制器和API调用,每一个都返回一个对象? 有合适的方法吗,还是个人偏

  • 连接:Keep-Alive 主机:webhook.site 内容类型:application/x-www-form-urlencoded

  • 问题内容: 我对AngularJS还是很陌生,并且正在设置我的第一个应用程序。我希望能够执行以下操作: 使用此设置会产生以下错误: 我的问题是:如何使用(或直接)注册控制器,以及如何在应用程序的其他位置使用注册的控制器。 我的动机:我想避免使用全局构造函数作为控制器(就像angularjs.org上的大多数示例一样使用)或复杂的命名空间。如果我可以将控制器注册并用作单个变量名(然后不放在全局范围内

  • 本文向大家介绍AngularJS 创建缩小安全的角度控制器,包括了AngularJS 创建缩小安全的角度控制器的使用技巧和注意事项,需要的朋友参考一下 示例 要创建安全的角度控制器,您将更改controller功能参数。 该函数中的第二个参数module.controller应该传递给数组,其中最后一个参数是控制器函数,而在此之前的每个参数都是每个注入值的名称。 这不同于通常的范式。它采用带有注入