在AngularJS中有一个简短的表单来创建控制器,因此您不必为此使用模块。这个简短的形式是简单地定义一个函数
function FooController ($scope) {
// ...
}
并使用ng-controller
<div ng-controller="FooController">
...
</div>
现在,我的问题是,是否有类似的“简短形式”来定义服务?换句话说:您可以在不使用模块的情况下定义(和使用)服务吗?
请注意,我知道使用模块构建应用程序是完全有意义的,不这样做可能/应该被视为不好的做法。只是我正在向一个对它全新的人解释AngularJS,而今天出现了这个问题。所以这只是为了好奇和完整。
答案 0 :(得分:7)
答案 1 :(得分:5)
由于始终会加载ng
模块,因此您可以在ng
模块上定义服务:
angular.module('ng')
.service('aService', function () {
// you really shouldn't do this
});
它可以工作,但你不应该搞乱你不拥有的模块。
如果你试图向某人解释为什么使用你自己的.controller
模块是好的:
angular-ui
)$http
)答案 2 :(得分:1)
这是一个我根本不理解的角度概念,我一直认为“分离”是好的,所以我不明白为什么我们需要将服务与指定的应用程序相关联。
我在做什么:您可以将angularjs应用程序声明为全局对象:
window.markrApplication = angular.module('markrOptionsApp', ....)
并宣布您的所有服务:
markrApplication.service('data', ....
当然,您需要在所有angularjs应用程序上设置所有依赖项。