将AngularJS控制器拆分为多个文件
Splitting AngularJS controllers into multiple files
我有一个使用Onsen UI和AngularJS构建的跨平台企业应用程序。然而,该应用程序的规模正在快速增长,并且变得令人困惑和难以管理。到目前为止,我已经能够在1个app.js文件中管理所有的应用程序控制器,并且该应用程序运行良好。但我想将我的控制器拆分成不同的.js文件,例如login.js、registration.js.,以使其在应用程序增长时更易于管理。
我在SO(标记的答案)上找到了THIS解决方案,但我在实现它时遇到了困难。同样,@jason328在链接上的答案看起来非常优雅,但我再次在用代码实现它时陷入了困境。
在我新的app.js文件中,我有如下模块:
angular.module('myApp.controllers', ['onsen']);
然后在例如login.js中,我将模块设置如下:
angular.module('myApp.controllers').controller('LoginController', ['$scope', '$http', function($scope, $http)
{
// All the login logic goes here
}]);
这不起作用,因为没有显示任何页面。不过,当我在app.js的原始文件中进行了此设置时,该应用程序运行良好(下面的原始代码)。
var app = angular.module("myApp", ['onsen']);
// Manages the state of the login.html screen
app.controller("LoginController", function($scope, $http)
{
// All the login logic goes here
});
我的问题在于新应用程序.js中的['onsen']?但是,我如何将其包含在我试图实现的SO解决方案中?
还有其他方法可以做到这一点。您可以为每个文件制作一个模块,并将它们添加到myApp模块中,如下所示:
app.js
var app = angular.module("myApp", ['onsen', 'loginControllers', 'otherController']);
login.js
var login = angular.module("loginControllers", []);
login.controller("LoginController", function($scope, $http)
{
// All the login logic goes here
});
other.js
var other = angular.module('otherControllers', []);
other("OtherController", function($scope, $http)
{
// All the other logic goes here
});
确保已将所有脚本添加到index.html.
您可以将它们转换为模块,如上面提到的@nicous,并将它们导入到需要使用它们的主应用程序.js上,然后您可以使用webpack或任何其他bundler为您生成捆绑包。这样,您就不需要将它们全部添加到html文件中。
相关文章:
- webpack代码拆分了handlerbs文件——结果是文件很大
- 将AngularJS控制器拆分为多个文件
- 使用JavaScript或jQuery拆分文件
- 如何在Gulp任务中拆分文件
- 如何拆分从 json 文件中读取的数据
- 读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
- Typescript 0.9.1.1模块被拆分为几个.ts文件
- angular js:将一个大型控制器拆分为多个文件
- 加载静态HTML文件并按类拆分为数组
- KineticJS - 如何拆分对象和文件
- 如何在多个文件中拆分 JavaScript 对象定义
- 未捕获的语法错误:意外令牌非法 - 拆分文件时
- 拆分要使用角度上传的大文件
- 使用 require.js 将应用程序的 javascript 拆分为多个 JS 文件
- 将大型 JSON 文件拆分为多个文件
- Node.js将大文件拆分为多个部分,并对这些部分进行迭代
- 如何将Node.js文件拆分为多个文件
- 跨文件拆分AngularJS模块服务
- 将大型typescript文件拆分为跨多个文件的模块
- 如何将Jquery.js文件拆分为多个文件