假设我有一个通过 AngularJS 1.x 编写的 SPA。
它有一个 app
模块,定义如下:
var app = angular.module('app', ['ngAlertify', 'ngRoute', 'ui.bootstrap'])
我还有几个在单独的 *Ctrl.js
文件中定义的 Controller 。定义它们的适当方法是什么?
我在这里看到两个选项。第一个是
app.controller('LoginCtrl', function($scope) { /* ... */ });
第二个是
angular.module('app').controller('LoginCtrl', function($scope) { /* ... */ });
哪一种更好且最常用?使用它们有什么缺点吗?
最佳答案
如果我正确理解你的问题,那么你想知道两者之间的区别
app.controller('LoginCtrl', function($scope) { /* ... */ });
对比
angular.module('app').controller('LoginCtrl', function($scope) { /* ... */ });
在上面两个方法中,app 是一个全局对象,您在 app.js
中声明它,例如
var app = angular.module('app',[]);
在本例中,app
是一个全局变量,可以在整个应用程序中访问它。我认为使用全局变量不是一件好事
在我们的应用程序中。
在第二种方法中,我们使用全局 Angular 对象来创建 Controller ,这样我们就不会使用全局变量。在这种情况下 app.js
看起来像
(function(){
'use strict';
var app = angular.module('app', []);
....
....
....
....
})
在这种情况下,app
变量将在除此文件之外的任何地方可用。
所以我相信第二种方法比第一种方法更好。
关于javascript - 如何在单独的文件中定义 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42436072/