angular
.module('first', [])
.filter('greet', function() {
return function(name) {
return 'Hello, ' + name + '!';
}
});
现在假设你想在另一个名为“second”的模块中使用“greet”过滤器,该模块实现了“goodbye”过滤器。您可以通过将“first”模块注入到“second”模块来实现这一点:
angular
.module('second', ['first'])
.filter('goodbye', function() {
return function(name) {
return 'Good bye, ' + name + '!';
}
});
// firstModule.js file
define(['angular'], function(angular) {
angular
.module('first', [])
.filter('greet', function() {
return function(name) {
return 'Hello, ' + name + '!';
}
});
});
// secondModule.js file
define(['angular', 'firstModule'], function(angular) {
angular
.module('second', ['first'])
.filter('goodbye', function() {
return function(name) {
return 'Good bye, ' + name + '!';
}
});
});
是的,你可以在angular中使用RequireJS。你需要进行额外的工作使其正常运行,就像你所包括的链接中一样,但这是可能的。
然而,总的来说,我没有发现在Angular中使用AMD有任何必要。AMD的整个理念是允许你声明性地指定脚本之间的依赖关系,并且不用担心它们在页面上包含的顺序。然而,Angular通过它的依赖注入机制为你处理了这个问题,因此在这方面使用AMD并不能给你带来任何好处。
简而言之,我没有发现在Angular.js中使用AMD有什么强烈的理由。
2012年9月21日10:49
提出的。Angular团队在这里提供的示例:https://github.com/angular/angular-seed/blob/master/app/index-async.html 解答了我的困惑。 - Dan Kanze