在浏览AngularJS示例应用程序时,我注意到:
Define(['app'], function (app) {
var customersController = function ($scope, $location, $filter, dataService, modalService) {...}
app.register.controller('CustomersController',
['$scope', '$location', '$filter', 'dataService', 'modalService', customersController]);
我不明白完整的语法,例如我不知道这行是什么意思或做什么?
Define(['app'], function (app)
我可以在哪里学习这些基本的东西?
答案 0 :(得分:2)
这主要是需要JS语义。在requireJS中,Define基本上创建了一个模块。这里我们声明一个模块,在本例中是一个控制器,第一个数组是模块的依赖项,在这种情况下它是唯一的应用程序,我们的角度应用程序定义。依赖项(define的第一个参数,数组)将被解析并传递给函数(我们的控制器),这里应用程序被传递给控制器:
define(['app'], function (app) {
下面的行实际上创建了充当我们控制器的函数:
var customersController = function ($scope, $location, $filter, dataService, modalService) {}
上面就像任何角度控制器定义一样,依赖关系传递给控制器。
下面是我们将控制器功能连接到为我们引入的app依赖requireJS的地方。我们告诉angular创建一个名为CustomersController
的控制器,第二个参数,带字符串的数组将控制器依赖关系定义为硬编码字符串,这样可以使脚本缩小安全,因为字符串不会被篡改minifier,例如,如果你的控制器的范围缩小到s
,那将会破坏你的app。
app.register.controller('CustomersController',
['$scope', '$location', '$filter', 'dataService', 'modalService', customersController]);
这种方法的重点是允许懒惰(按需)加载模块/控制器的角度,如果你没有构建一个巨大的应用程序,那么就没有必要了。我一个人发现Dan Wahlin的这种方法非常有帮助。
以下是更多可以帮助您的文章:
答案 1 :(得分:0)
此代码来自an article标题为“使用AngularJS和RequireJS动态加载控制器和视图”,在我看来这不是基本的东西。作者有几个针对初学者的教程,包括this video。
我,就像egghead.io的课程一样。